活动没有被重用

时间:2011-03-22 10:00:26

标签: android notifications android-notifications

我的申请有一个奇怪的问题。

我启动应用程序,活动显示正常。

然后我按下主页键,以便活动进入后台。我可以看到正在调用onPause()方法。

然后,应用程序的服务会创建一个显示在状态栏上的通知。

然后我点击通知并显示活动,我看到调用onResume()方法。

然后我按下主页键,活动进入后台。我可以看到正在调用onPause()方法。

如果我现在通过单击应用程序图标启动应用程序,我会看到创建了一个新的活动实例而不是使用暂停的实例。

如果我再次按下主页键,则新活动将进入后台。

通过单击应用程序图标启动应用程序,我看到另一个新的活动实例已创建。

按下该点的后退按钮会破坏每个活动。

我想要发生的是使用活动的单个实例。

有什么想法吗?

2 个答案:

答案 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'启动模式。