3

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

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

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

4

2 回答 2

4

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

或者,手动解决方案是检查 MyActivity 中意图的 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));    
}
于 2011-02-24T08:35:12.273 回答
0

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

因此,一项明确的解决方案是将主要活动设为“从最近排除 = true”和“无历史记录 = true;” 用户将无法在“长按主键菜单”中看到您的活动

于 2011-02-24T09:00:52.560 回答