我正在尝试将一项活动带到最前面。我发现了许多与此类似的问题,但没有一个真正有效。
我总是在应用程序类的变量中保存对当前活动的引用。当应用程序在后台运行时(在 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
,那么它会显示错误 Calling startActivity()
from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK
flag