繁体   English   中英

动态注册后,Android Broadcast Receiver不会唤醒应用程序

[英]Android Broadcast Receiver not waking up application when registered dynamically

我遇到的情况是,我只想注册在某些平台上更改时间的BroadcastReceiver 出于性能原因,我只想在所需的平台上通过context.registerReceiver方法动态注册接收器。 我可以在应用程序首次运行时检测该平台,并决定是否要收听此事件。

在测试这种方法时,我发现通过context.registerReceiver注册时,如果进程未运行,则不会唤醒应用程序。

这是预期的,并且有解决的方法吗?

IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_CHANGED); 
this.getApplicationContext().registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Log.e("MYTAG", "Received Broadcast from dyn one");


        }
    }, filter);

动态注册广播后,只有在应用程序运行时才能接收消息。 如果要唤醒它,则需要在清单中声明广播

动态注册的接收器的寿命很短,因此不会始终唤醒您的设备。 如果要使其表现为所需的样子,则必须在清单中声明它!

PS:最近有完全一样的问题,所以我对此很确定!

暂无
暂无

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

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