Java 应用服务赢得';使用BroadCastReceiver重新启动后无法启动

Java 应用服务赢得';使用BroadCastReceiver重新启动后无法启动,java,android,Java,Android,我希望在android重新启动时启动我的服务。我以前是这样做的 公共类autostart扩展了BroadcastReceiver{ @凌驾 公共void onReceive(上下文、意图){ MyService1 mYourService=newmyservice1(); MainActivity.instance_main.showToast(“接收到广播”); Intent mServiceIntent=新的Intent(MainActivity.instance_main,mYourSer

我希望在android重新启动时启动我的服务。我以前是这样做的

公共类autostart扩展了BroadcastReceiver{
@凌驾
公共void onReceive(上下文、意图){
MyService1 mYourService=newmyservice1();
MainActivity.instance_main.showToast(“接收到广播”);
Intent mServiceIntent=新的Intent(MainActivity.instance_main,mYourService.getClass());
如果(!MainActivity.instance_main.isMyServiceRunning(mYourService.getClass())){
MainActivity.instance_main.startService(mServiceIntent);
MainActivity.instance_main.showtoos(“重新启动”);
}
否则{
MainActivity.instance_main.showtoos(“已在运行…………);
}
}
}
Android清单中的接收者


定义的权限


OnCreate()中还请求了电池优化忽略权限

Intent Intent=新Intent();
设置动作(设置、动作、请求、忽略、电池优化);
setData(Uri.parse(“包:”+MainActivity.instance_main.getPackageName());
MainActivity.instance_main.startActivity(意图);

但这行不通。重新启动时服务不会启动。请给我建议解决方案。

我们需要注册接收者。将以下代码添加到OnCreate()中

但是,重新启动后,它不会自动命中

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    BroadcastReceiver mService=new Autostart();
    registerReceiver(mService,filter);