2

整理用のアプリを開発しようとしています。特定の時間のタスクを設定した後、通知を作成したので、この通知がステータスバーに表示され、ユーザーがこれに触れると、現在のアクティビティが表示されます。
私の問題は次のとおりです。通知が表示されると、アクティビティも開始されます。
とにかくこれを防ぐためにありますか?つまり、通知が表示されたときにアクティビティが自動的に開始されず、ユーザーは通知をクリックしてアクティビティを起動する必要があります。

クラス「メイン」と内部にアラームマネージャーがあります。このアラーム マネージャは特定の時間に起動し、別のアクティビティ (DisplayNotification) を開始します。

{
    Intent intent = new Intent("com.test.DisplayNotification");
    intent.putExtra("alarm_message", "Alarm");
    intent.putExtra("item_name", "message");
    PendingIntent broadcast = PendingIntent.getActivity(getBaseContext(), 0, intent, 0);
    AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, mili, broadcast);
}

DisplayNotification クラスで私が持っている

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String message = getIntent().getExtras().getString("item_name");

        Intent i = new Intent("com.test.Main");


        PendingIntent detailsIntent = 
            PendingIntent.getActivity(this, 0, i, 0);

        NotificationManager nm = (NotificationManager)
            getSystemService(NOTIFICATION_SERVICE);
        Notification notif = new Notification(
            R.drawable.icon, 
            "Time's up!",
            System.currentTimeMillis());

        CharSequence from = "AlarmManager - Time's up!";
        notif.setLatestEventInfo(this, from, message, detailsIntent);


        nm.notify(1, notif);
        //---destroy the activity---
        finish();

    }
4

1 に答える 1

2

a を使用しBroadcastReceiverてアラームの結果を「リッスン」し、NotificationそのonReceive(...)メソッドで を作成します。

于 2012-04-14T12:04:37.513 に答える