经过长时间的搜索,我无法完全找到所需的东西。
我只想要:当向用户显示通知时,如果应用仅在后台运行,我想重新打开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;
如果应用或活动已被终止,则实际上无法正常工作的情况是重新启动应用。
编辑:被杀死意味着我的应用程序已在应用程序管理器中关闭。否则我们失去了焦点,活动被摧毁了。在这种情况下,我想完全重新启动该应用程序。
我认为您并不完全了解android的功能。每当需要您的程序时,该程序就会由android启动(有关可重写的onCreate,请参阅Application类)。
只要有必要,就可以重新创建或将其置于前台。
这意味着活动重启不一定意味着应用程序重启。实际上,如果程序仍在内存中,则不会重新启动应用程序。
如果您想进一步调查
这应该触发应用程序的重启。如果确实是问题所在,那么您将无法“解决”它。Android决定何时终止您的应用程序以及何时将其从内存中删除。
最好的解决方案是重新设计您的活动,以使应用程序重新启动时触发的任何事情也可以在活动本身中执行。如此,如果没有更多细节,您希望在“活动/应用程序重新启动”上看到什么样的功能,就很难在此问题上提供进一步的建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句