0

アクティビティを拡張して通知を作成していますが、通知が表示されるたびにアプリが起動し続けます。毎回同じアクティビティが起動するわけではありません。代わりに、アプリで最後に使用されたアクティビティを起動します。私の通知は、AlarmManagerを介して特定の日時に開始されます。通知によってアプリが起動しないようにするにはどうすればよいですか?ユーザーがアプリをタップしたときにアプリを起動するために必要ですが(その部分は正常に機能しています)、ステータスバーに通知が初めて表示されたときにアプリを起動したくありません。通知のコードは次のとおりです。

public class DisplayReminderNotification extends SherlockActivity {

private Context context = this;

//Grab a handle onto the database and store the name of the reminder.
protected RemindersDAO remindersDAO;

@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //Get the notification ID.
    int notifID = getIntent().getExtras().getInt("Reminder_Primary_Key");

    String reminderName = getIntent().getExtras().getString("Reminder_Name");

    //PendingIntent stores the Activity that should be launched when the user taps the notification.
    Intent i = new Intent(this, ViewLocalRemindersDetail.class);
    i.putExtra("NotifID", notifID - randomInt);
    i.putExtra("notification_tap", true);

    displayIntent = PendingIntent.getActivity(this, notifID, i, 0);

    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    Notification notif = new Notification(R.drawable.launcher_icon, reminderName, System.currentTimeMillis());

    CharSequence from = "Here's your reminder:";

    CharSequence message = reminderName;        
    notif.setLatestEventInfo(this, from, message, displayIntent);

    //Fire up the notification.
    nm.notify(notifID, notif);

    //Destroy the activity/notification.
    finish();

} 
}

問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

私はいくつかのマイナーな変更の後にあなたのコードを試しました、そしてそれは私の終わりにうまく働いています。以下はコードです。MyActivityと呼ばれる空白のアクティビティで起動するようにアクティビティを変更しました。

public class DisplayReminderNotification extends Activity {

    private Context context = this;

    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Get the notification ID.
        int notifID = 1234;

        String reminderName = "reminder";

        // PendingIntent stores the Activity that should be launched when the
        // user taps the notification.
        Intent i = new Intent(this, MainActivity.class);
        i.putExtra("NotifID", 123);
        i.putExtra("notification_tap", true);

        PendingIntent displayIntent = PendingIntent.getActivity(this, notifID,
                i, 0);

        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification notif = new Notification(R.drawable.ic_launcher,
                reminderName, System.currentTimeMillis());

        CharSequence from = "Here's your reminder:";

        CharSequence message = reminderName;
        notif.setLatestEventInfo(this, from, message, displayIntent);

        // Fire up the notification.
        nm.notify(notifID, notif);

        // Destroy the activity/notification.
        finish();

    }
}

これをメインランチャーアクティビティとして作成しました。このアクティビティを起動すると、通知バーに通知が追加されるだけで、アプリケーションは起動されません。別のサンプルアプリであるこのコードを試してみることをお勧めします。コードの他の部分に問題がある可能性があります。

于 2012-10-10T09:19:40.880 に答える