繁体   English   中英

在Android广播接收器中将活动置于最前面

[英]Bring an activity to front in android Broadcast Reciever

当我接到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。

android:launchMode="singleTop"设置为清单中的活动,并将标志设置为:

intent2open.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
    |Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
    |Intent.FLAG_ACTIVITY_NEW_TASK);

* 至少在我的项目中对我来说效果很好


更新资料

在这种情况下,增加广播的Intent过滤器清单的优先级也可能对您有帮助:

<!-- Higher numbers have a higher priority -->
<intent-filter android:priority="100">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM