一、说明
笔记主要是记录一些本人在开发当中的学习和使用笔记。笔记内容包含一些本人觉得重要的知识点、本人易犯的错误等。
由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合理和错误的地方,以便我来修正。谢谢!
二、笔记时间
2018年10月19日
三、简述
本文主要讲述Android APP实现开机自启的方式。
四、详情
1、添加开机自启
Android在开机完成都会发出一个广播,我们通过监听这个开机广播实现就可以实现APP的开机自启。
第一步,实现一个广播的onReceive方法,在里面添加开机自启代码。
//BootBroadcastReceiver.java
package com.lipy.demo.crashhandler;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* 创建人: lipy
* 创建时间: 2018/4/23
* 修改人:lipy
* 修改时间:2018/4/23
* 修改内容:
*
* 功能描述:开机自启
*/
public class BootBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action_boot ="android.intent.action.BOOT_COMPLETED";
if (intent.getAction().equals(action_boot)){
Intent intent2 = new Intent(context, MainActivity.class);
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //Context启动Activity需要添加这个flag
context.startActivity(intent2);
}
}
}
第二步,在AndroidManifest.xml中注册开机广播。
注:一定要添加RECEIVE_BOOT_COMPLETED这个开机广播权限。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lipy.demo.crashhandler">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round">
<receiver android:name=".BootBroadcastReceiver">
<intent-filter >
<!-- 开机广播 -->
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</receiver>
</application>
</manifest>
2、示例源码
示例源码:https://github.com/lipyhui/android_app_demo/tree/master/CrashHandler