在Android Broadcastreceiver中将活动带到前面

时间:2012-03-26 14:01:48

标签: android broadcastreceiver

我正在尝试启动一项活动,当我收到我的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。

1 个答案:

答案 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">