Android 使用广播系统解决app开机自启动问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 使用广播系统解决app开机自启动问题相关的知识,希望对你有一定的参考价值。

参考技术A

关注 【网罗开发】微信公众号,回复【160】便可领取。
网罗天下方法,方便你我开发 ,更多android技术干货等待领取,所有文档会持续更新,欢迎关注一起成长!

总结一下使用ACTION_BOOT_COMPLETED的广播,解决app开机自启动的问题
1.首先在你的工程上建一个广播接受的类,继承BroadcastReceiver:

2.然后要在AndroidManifest.xml中加入权限和配置相关信息:

3.在application标签中,配置以下相关信息:

补充说明:
1.查看系统中是否安装了类似360管家的软件,为了加快开机速度,默认是关闭掉开机广播的,只需要在设置中打开即可。
2.如果监听不到广播,可以尝试同时监听广播和sd卡。
3.同时监听广播和sd卡,在application标签中,配置以下相关信息:

Android中app开机自启动的开发

(1)首先添加权限开机启动权限

<!--开机启动权限-->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

(2)注册一个BroadcastReceiver来检测android系统开机时发出的开机广播

package com.wxyz.dengchaoqun.testswf;

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

/**
 * Created by 邓超群 on 2017/2/4.
 */

//开机自启动广播接受
public class AutoStartBroadcastReceiver extends BroadcastReceiver {
    static final String action_boot ="android.intent.action.BOOT_COMPLETED";
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(action_boot)){
            Intent sayHelloIntent=new Intent(context,MainActivity.class);

            sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            context.startActivity(sayHelloIntent);
        }
    }

}

这里要强调的是,开机启动可以启动app的Activity也可以启动服务,这就看app的具体需求了,我这里是启动的MainActivity

(3)在配置文件里面注册服务

<!-- 开机自启动广播接受 -->
        <receiver android:name=".AutoStartBroadcastReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.HOME"/>
            </intent-filter>
        </receiver>

  



 



以上是关于Android 使用广播系统解决app开机自启动问题的主要内容,如果未能解决你的问题,请参考以下文章

Android中app开机自启动的开发

如何解决App无法收到android开机广播

Android APP开机自启动基本方法

Android静默安装及开机自启的简单实现

如何实现apk安装后自启动

android再发一次开机广播