我正试图将活动带到前线。我发现了许多与此相似的问题,但其中没有一个真正起作用。
我总是在应用程序类的变量中引用当前活动。当应用程序在后台运行时(在onPause触发后),如果有任何消息到达,我需要将相同的活动带到前面并显示消息。我得到它的唯一方法是..
Intent i = new Intent(mCurrentActivity, JoboffersActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
我遇到的问题是,它重新创建了我想要避免的活动。我在清单中尝试了singleInstance
和singleTask
。如果我没有添加FLAG_ACTIVITY_CLEAR_TOP
,请按回按键,它会将我带到同一活动的上一个实例。即使我添加sigleInstance
,它也会创建两个相同活动的实例。如果我不添加FLAG_ACTIVITY_NEW_TASK
,则会显示错误从“活动”上下文外部调用startActivity()
需要FLAG_ACTIVITY_NEW_TASK
标记
答案 0 :(得分:0)
尝试在您的意图中添加另一个标志FLAG_ACTIVITY_SINGLE_TOP。 根据Android文档,这2个标志的组合:
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
将当前的Activity实例带到前面。 http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP