我正在尝试启动一项活动,当我收到我的Android手机来电时。为此,在振铃状态下,我开始了一个活动并设置了一些标志,以便将此活动置于前面。这是代码:
Intent intent2open = new Intent(ctx, Main.class);
intent2open.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
intent2open.setAction("android.intent.action.VIEW");
intent2open.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent2open.setAction(Intent.ACTION_MAIN);
intent2open.addCategory(Intent.CATEGORY_LAUNCHER);
intent2open.putExtra(name, value);
startActivity(intent2open);
通过使用上面的代码,我没有得到我所需的输出,当我接受或拒绝我的电话时,某些情况应用程序将启动。 在其他一些情况下,它将在状态响起时启动。我无法解决这个问题。我怎样才能把我的活动带到前面。
提前致谢, LOKESH。
答案 0 :(得分:0)
将android:launchMode="singleTop"
设置为清单中的活动,并将标记设置为:
intent2open.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
|Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
|Intent.FLAG_ACTIVITY_NEW_TASK);
* 至少它在我的项目中适合我
<强>更新强>
在这种情况下,广播的意图过滤器清单中优先级的提高也可以帮助您:
<!-- Higher numbers have a higher priority -->
<intent-filter android:priority="100">