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