简体   繁体   English

动态注册ACTION_BOOT_COMPLETED的BroadcastReceiver无效?

[英]Dynamically Registering a BroadcastReceiver for ACTION_BOOT_COMPLETED not working?

My Broadcast receiver is not restarting the service after a reboot or startup of my phone. 重新启动或启动手机后,我的广播接收器未重新启动服务。

My Receiver class code: 我的接收器类代码:

public class MyReceiver extends BroadcastReceiver
{
    public void onReceive(Context context, Intent intent)
    {
        Intent serviceIntent = new Intent(context, MyService.class);
        context.startService(serviceIntent);
    }
}

My Service class code that registers the receiver in the onStartCommand() method: 在onStartCommand()方法中注册接收者的我的Service类代码:

myReceiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter("android.intent.action.BOOT_COMPLETED");
registerReceiver(myReceiver, intentFilter);

I cannot register the receiver in my Android manifest because I can only have this broadcast receiver be registered under certain conditions outlined in my Service class. 我无法在Android清单中注册接收器,因为只能在Service类中概述的某些条件下注册此广播接收器。 I have enabled 我已经启用

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

in my Android manifest file however. 在我的Android清单文件中。

It won't work. 它不会工作。 The only way to get ACTION_BOOT_COMPLETED broadcasts is via a manifest-registered BroadcastReceiver. 获得ACTION_BOOT_COMPLETED广播的唯一方法是通过清单注册的BroadcastReceiver。

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

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