我的申请有一个奇怪的问题。
我启动应用程序,活动显示正常。
然后我按下主页键,以便活动进入后台。我可以看到正在调用onPause()
方法。
然后,应用程序的服务会创建一个显示在状态栏上的通知。
然后我点击通知并显示活动,我看到调用onResume()
方法。
然后我按下主页键,活动进入后台。我可以看到正在调用onPause()
方法。
如果我现在通过单击应用程序图标启动应用程序,我会看到创建了一个新的活动实例而不是使用暂停的实例。
如果我再次按下主页键,则新活动将进入后台。
通过单击应用程序图标启动应用程序,我看到另一个新的活动实例已创建。
按下该点的后退按钮会破坏每个活动。
我想要发生的是使用活动的单个实例。
有什么想法吗?
答案 0 :(得分:3)
启动应用时,只需使用Android使用的相同意图过滤器:
final Intent notificationIntent = new Intent(context, MessageListActivity.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
由于您从通知栏打开活动所创建的意图与用于启动应用程序的Android相同,因此将显示先前打开的活动,而不是创建新活动。
答案 1 :(得分:0)
您应该查看Android活动的不同启动模式。 this应该有所帮助。可以在androidmanifest.xml文件中设置启动模式。我认为您的解决方案是使用'singleTop'启动模式。