سؤال

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:

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. I have enabled

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

in my Android manifest file however.

هل كانت مفيدة؟

المحلول

It won't work. The only way to get ACTION_BOOT_COMPLETED broadcasts is via a manifest-registered BroadcastReceiver.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top