从主页键屏幕开始活动

时间:2011-02-24 08:21:34

标签: android android-activity android-service android-homebutton

我有一个开始活动的后台服务,

Intent i = new Intent(this, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

销毁此活动并通过“长按主页键菜单”重新启动后,此活动将再次启动。但我想开始主要的活动。我怎么能意识到这一点?

2 个答案:

答案 0 :(得分:4)

你能详细解释一下吗?如果我了解您的问题,请尝试设置FLAG_ACTIVITY_NO_HISTORY。

或者,手动解决方案是检查MyActivity中intent的FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY,如果看到此标志设置,则启动到主活动。以下代码应该这样做:

if ((getIntent().getFlags() & FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
   activity.startActivity(new Intent(context , MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));    
}

答案 1 :(得分:0)

问题就像您从服务开始活动 - >通知来了 - >用户启动应用程序agian - >没有通知 - >主要活动来自前景 现在,如果应用程序是从“长按主页键菜单”启动的,则主要活动正在启动并显示通知。

所以一个明确的解决方案是将Main活动设为“Exclude From recent = true”和“No History = true;”用户将无法在“长按主页键菜单”中看到您的活动