博客> Android 使用广播系统解决app开机自启动问题
Android 使用广播系统解决app开机自启动问题
2018-04-19 19:37 评论:0 阅读:457 FBY展菲
ios app

Demo地址 如果有所帮助记得关注,点Star 总结一下使用ACTION_BOOT_COMPLETED的广播,解决app开机自启动的问题 1.首先在你的工程上建一个广播接受的类,继承BroadcastReceiver:

package guide.example.com.guidedemo;

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

/**
 * Created by fby on 2017/6/26.
 */

public class BootReceiver extends BroadcastReceiver {
    static final String action_boot ="android.intent.action.BOOT_COMPLETED";

    @Override
    public void onReceive (Context context, Intent intent) {

        Log.i("charge start", "启动完成");

        if (intent.getAction().equals(action_boot)){

            Intent mBootIntent = new Intent(context, MainActivity.class);
            // 下面这句话必须加上才能开机自动运行app的界面
            mBootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(mBootIntent);
        }
    }
}

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

<uses permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">  

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

//BootReceiver是上面建的广播类
        <receiver android:name=".BootReceiver">  
            <intent>  
                &lt;!--注册开机广播地址--&gt;  
                <action android:name="android.intent.action.BOOT_COMPLETED">            
                </action>  

                <category android:name="android.intent.category.DEFAULT">  
            </intent>  
        </receiver>  

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

    <receiver android:name=".broadcastReceiver.BootCompletedReceiver">
            <intent>
                <action android:name="android.intent.action.BOOT_COMPLETED">

                <category android:name="android.intent.category.HOME">
            </intent>
            <intent>
                <action android:name="android.intent.action.PACKAGE_ADDED">
                <action android:name="android.intent.action.PACKAGE_REMOVED">
                <action android:name="android.intent.action.PACKAGE_REPLACED">

                <data android:scheme="package">
            </intent>

        </receiver>

希望可以帮助大家, 如有问题可加QQ技术交流群: 591625129。 如果哪里有什么不对或者不足的地方,还望读者多多提意见或建议。 如需转载请联系我,经过授权方可转载,谢谢

本篇已同步到个人博客:FBY展菲


欢迎关注我的公众号:网罗开发

收藏
0
sina weixin mail 回到顶部