我想每天在我的Android应用程序中创建通知。为此,我做了一个createNotification方法。现在,我想在特定时间调用该方法。我的mainactivity.java如下:

package com.example.shiza.dailyquranquote;

import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;

import java.util.Calendar;
import java.util.Date;


public class MainActivity extends ActionBarActivity {
    Date startDate= new Date("03/31/2015 12:00:00");
    Date endDate = new Date();
    TextView textView ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView)findViewById(R.id.verse);
        long startDay = startDate.getTime() / 1000 / 60 / 60 / 24;
        long endDay = endDate.getTime() / 1000 / 60 / 60 / 24;
        long daysBetween = endDay - startDay;
        SharedPreferences sharedPreferences = getSharedPreferences("QuranVerse",0);
        String id = ""+ (daysBetween % 365) ;
        String verse = sharedPreferences.getString(id, "");

        if (verse == null)
        {
            verse ="Sufficient is Allah for me; There is no power except Him; And in Him I put my trust.";
        }

        Calendar rightNow = Calendar.getInstance();
        textView.setText(verse + "current hour is" + rightNow.HOUR_OF_DAY);
        if ( rightNow.HOUR_OF_DAY == 11 )
        {
            createNotification();
        }
    }

    public void goToInsertVerse(View v)
    {
        Intent intent = new Intent(this,InsertVerse.class);
        startActivity(intent);
    }
    public void goToGetVerse(View v)
    {
        Intent intent = new Intent(this,GetVerse.class);
        startActivity(intent);
    }
    public void createNotification(View view) {
        // Prepare intent which is triggered if the
        // notification is selected
        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);

        // Build notification
        // Actions are just fake
        Notification noti = new Notification.Builder(this)
                .setContentTitle("New mail from " + "[email protected]")
                .setContentText("Subject").setSmallIcon(R.drawable.background)
                .setContentIntent(pIntent)
                .build();
        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        // hide the notification after its selected
        noti.flags |= Notification.FLAG_AUTO_CANCEL;

        notificationManager.notify(0, noti);

    }
}


现在,我需要将view作为参数传递给createNotification。我做不到。我该如何实现?

最佳答案

使用以“ setContent”为参数的方法