如何检查Android中的通知是否关闭应用程序?

时间:2014-12-18 03:18:56

标签: android notifications push-notification

在我的应用中,我有一个活动A打开活动B.然后打开通知。单击通知后,它需要恢复应用程序。这就是问题所在。下面的代码恢复活动B并起作用。但这假设即使最小化,应用程序仍在运行。

但是如果用户关闭应用程序,然后单击通知,它将打开活动B,然后崩溃,因为由于未运行A,因此某些事情未设置为B运行。

基本上我需要一种方法来检查应用程序是否正在运行,如果不是,则打开A,否则打开B.

有谁知道怎么做?

谢谢

    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    Intent notIntent = new Intent(context, SpeciesScreen.class);
    notIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    PendingIntent pIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, notIntent, 0);

    Notification noti = new Notification.Builder(context)
    .setContentTitle("Scan Complete")
    .setSmallIcon(R.drawable.ic_launcher)
    .setContentIntent(pIntent)
    .setAutoCancel(true)
    .build();

    notificationManager.notify(0, noti); 

2 个答案:

答案 0 :(得分:0)

使用此.. notIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 用新的任务开始这项活动。

答案 1 :(得分:0)

您可以通过在活动中添加try catch来执行此类工作B.在活动B中使用try和catch,如果在catch部分中未正确初始化活动,则使用意图来运行活动A.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try{
       initForm();
   } catch (Exception e) {
       Intent i = new Intent(context, A.class);
       startActivity(i);
       finish();
   }
}