单击通知时重新启动应用程序

时间:2015-02-11 12:52:26

标签: java android eclipse

我在点击通知

时使用以下代码打开我的应用程序
mNotificationManager = (NotificationManager)
                  context.getSystemService(Context.NOTIFICATION_SERVICE);      

          PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
              i, PendingIntent.FLAG_UPDATE_CURRENT);      

          NotificationCompat.Builder mBuilder =
              new NotificationCompat.Builder(context)
              .setSmallIcon(R.drawable.ic_launcher)
              .setContentTitle(title)
              .setDefaults(Notification.DEFAULT_SOUND)
              .setStyle(new NotificationCompat.BigTextStyle()
                         .bigText(msg))
              .setContentText(msg);

         mBuilder.setContentIntent(contentIntent);
         mNotificationManager.cancel(Constants.PUSH_ID);
         mNotificationManager.notify(Constants.PUSH_ID, mBuilder.build());

问题是,如果应用程序已在运行,它将在我当前的活动之后打开启动应用程序。

 Intent x = new Intent(context, MainActivity.class);
                                 i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                 i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                                 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

如何关闭旧版本并启动应用程序新版本。

1 个答案:

答案 0 :(得分:-1)

好的,我发现了一个非常酷且简单的解决方案。我只是将一个额外的布尔值传递给我的意图,如i.putExtra("shouldRestart", true);

在我的SplashActivity上,我检查

if(getIntent().getBooleanExtra("shouldRestart", false))
{
   // we need to clear all activities from top 
   finishAffinity();
}