工作过程中遇到一个需求,要求手机重启之后,自己写的APP中的服务生效
思考:
- 要想自己APP中的服务生效,必须先启动APP
- 问题转化成手机重启之后 将自己开发的APP 自主启动起来
- 手机重启/开机完成后,系统会有一个启动完成的广播 ACTION_BOOT_COMPLETED
- 在我的APP中监听这个广播,收到广播 意味着手机完成重启/开机,然后把自己的APP调用起来
实操:
首先需要再AndroidManifest.xml中添加接收重启的权限,并注册一个广播接收器
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!--在 application标签下-->
<receiver android:name=".BootBroadcastReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
广播接收中监听 ACTION_BOOT_COMPLETED,监听到之后 就启动项目的入口Activity
public class BootBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent intent2 = new Intent(context,MainActivity.class);
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent2);
}
}
}