Android - 从应用程序类

时间:2015-11-15 21:16:59

标签: android android-intent android-activity bringtofront

我正试图将活动带到前线。我发现了许多与此相似的问题,但其中没有一个真正起作用。

我总是在应用程序类的变量中引用当前活动。当应用程序在后台运行时(在onPause触发后),如果有任何消息到达,我需要将相同的活动带到前面并显示消息。我得到它的唯一方法是..

Intent i = new Intent(mCurrentActivity, JoboffersActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

我遇到的问题是,它重新创建了我想要避免的活动。我在清单中尝试了singleInstancesingleTask。如果我没有添加FLAG_ACTIVITY_CLEAR_TOP,请按回按键,它会将我带到同一活动的上一个实例。即使我添加sigleInstance,它也会创建两个相同活动的实例。如果我不添加FLAG_ACTIVITY_NEW_TASK,则会显示错误从“活动”上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标记

1 个答案:

答案 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