# 羊皮书APP(Android版)开发系列(二十六)开机自启动app的实现

开机自动启动app的实现是比较简单的,监听一个开机广播即可。当监听到开机广播后打开想要启动的app即可,具体实现如下:

1. 创建广播接收器:BootBroadcastReceiver。
package cn.studyou.autoopenapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;

/**
 * 基本功能:开机自动启动APP
 * 创建:王杰
 * 创建时间:16/7/22
 * 邮箱:w489657152@gmail.com
 */
public class BootBroadcastReceiver extends BroadcastReceiver {
    static final String ACTION = "android.intent.action.BOOT_COMPLETED";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(ACTION)) {
            final Intent mainActivityIntent = new Intent(context, MainActivity.class);  // 要启动的Activity
            mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            final Context mContext = context;
            new Handler().postDelayed(new Runnable(){
                public void run() {
                    mContext.startActivity(mainActivityIntent);
                }
            }, 10000);

        }
    }
}
2. 在application声明Receiver。
        <receiver android:name=".BootBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
3. 声明权限。
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

4. 特殊说明:

1) Apk需要设置默认安装到手机内存,外设SD卡是接收不到开机广播,这里只针对安装位置为手机内存的app。

2)小米手机收不到开机广播的处理办法:系统与安全文件夹—>安全中心—>授权管理—>自启动管理—>对本App添加自启动授权

    原文作者:JeenWang
    原文地址: https://www.jianshu.com/p/774bc9aebf6f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞