如何将Android暂停活动带到前面

时间:2013-09-17 15:08:14

标签: android-intent flags

我有一个活动启动异步任务,侦听来自服务器的消息。当用户点击主页按钮时,活动暂停,异步任务继续在后台运行。当某个消息到达时,我希望活动恢复并在不重新创建的情况下到达前面。我尝试了以下内容。

机器人:launchMode = “singleTop”

intent = new Intent(getBaseContext(), MainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

这会将活动带到前面但重新开始活动。

我也试过

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);            
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);                   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

但这些都没有将活动带到前线。

恢复应用程序的正确标志是什么,如果我从主屏幕重新启动它会发生什么。

1 个答案:

答案 0 :(得分:6)

我发现以下似乎有效的解决方案。这有点令人费解,但做了我想做的事。

请参阅:Bring task to front on android.intent.action.USER_PRESENT

我使用以下方法调用简单调用finish();

的BringToFront活动
private void bringToFront()
{
   Intent i = new Intent(getBaseContext(), BringToFront.class);
   i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   getBaseContext().startActivity(i);
}

在我看来,应该有一种更简单的方法将任务带到前线。将保持开放以确定是否建议更好的解决方案。