2

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

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

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

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

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

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

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

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

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

在该点按下后退按钮会破坏每个活动作为回报。

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

有任何想法吗?

4

2 回答 2

3

只需使用与 android 在启动应用程序时使用的相同的意图过滤器:

        final Intent notificationIntent = new Intent(context, MessageListActivity.class);
        notificationIntent.setAction(Intent.ACTION_MAIN);
        notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);

由于您创建的从通知栏打开 Activity 的意图与 android 用于启动您的应用程序的意图相同,因此将显示先前打开的 Activity 而不是创建新的。

于 2011-03-22T14:45:13.077 回答
0

您应该查看 Android 活动的不同启动模式。应该会有所帮助。启动模式可以在 androidmanifest.xml 文件中设置。我认为您的解决方案是使用“singleTop”启动模式。

于 2011-03-22T10:11:55.357 回答