最近在开发一款Android大屏应用,配合手机进行投屏,目前已实现功能,但是目前每次都需要进入程序,在onCreate中启动核心服务类。
故想优化一下程序,在AndroidManifest.xml中注册一个广播监听器,监听开机广播android.intent.action.BOOT_COMPLETED,然后在广播接收器的抽象函数onReceive中启动我的核心服务类。我按照目前几篇博客提供的方法,每次重启手机都没有效果,也不知道啥原因。希望大家提提意见,这问题调试都没办法。
<!--注册服务-->
<service
android:name=".SinkTesterService"
android:enabled="true"
android:exported="true"/>
<!--注册广播接收器-->
<receiver android:name=".ServiceReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
<!--申请权限-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
广播接收器类:
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
LogHelper.Log("软件接收到开机信号!!!!!",true);
if(intent.getAction().equals(intent.ACTION_BOOT_COMPLETED)){
LogHelper.Log("ServiceReceiver中接收到设备开机信号",true);
Intent i=new Intent(context,SinkTesterService.class);
context.startService(i);
}
}
}