恢复从服务开始活动

时间:2011-10-30 04:00:59

标签: android

正如我在几个stackoverflow回答中读到的那样。要从服务启动活动,您必须使用FLAG_ACTIVITY_NEW_TASK,但它将在单独的任务中创建新的活动实例。我想重用已经开始的活动。我试图从侦听c2dm通知的IntentService中做到这一点。

2 个答案:

答案 0 :(得分:1)

在活动的清单中,您可以设置android:launchMode="singleInstance"

以下是docs关于singleInstance的说法:

  

只允许此活动的一个实例运行。这个   活动获得一个独特的任务,只有自己在其中运行;如果是   曾经使用相同的Intent再次启动,那么任务就是   提出并调用其Activity.onNewIntent()方法。如果这   活动尝试启动新活动,即新活动   在单独的任务中启动。请参阅任务和后台堆栈文档   有关任务的更多细节。

here是我获取信息的地方。

答案 1 :(得分:1)

您必须将此标志与您的意图一起使用:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

如果您不想要Activity的新实例,请在AndroidManifest文件中为您的Activity设置launchMode:

android:launchMode="singleTask"