经过长时间的搜索,我没有找到完全符合我需求的东西。
我只是想要:当向用户显示通知时,如果应用程序只是在后台运行,我希望重新打开MainActivity。但是如果应用程序/活动已被终止,我希望完全重启应用程序。
我的实际代码:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle(notification.getSubject())
.setContentText(notification.getMessage())
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
mBuilder.setContentIntent(
PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), PendingIntent.FLAG_UPDATE_CURRENT));
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notif = mBuilder.build();
notif.flags = Notification.DEFAULT_VIBRATE | Notification.FLAG_AUTO_CANCEL;
如果应用程序或活动已被关闭,那么无法工作的情况就是重新启动应用程序。
编辑:我指的是在应用程序管理器中关闭了应用程序。或者我们失去了焦点并销毁了活动。在这些情况下,我想完全重新启动应用程序。