关注 【网罗开发】微信公众号,回复【160】即可领取。 网罗天下方法,方便你我开发,更多iOS技术干货等待领取,全部文档会持续更新,欢迎关注一块儿成长! 总结一下使用ACTION_BOOT_COMPLETED的广播,解决app开机自启动的问题 1.首先在你的工程上建一个广播接受的类,继承BroadcastReceiver:android
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中加入权限和配置相关信息:bash
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
复制代码
3.在application标签中,配置如下相关信息:微信
//BootReceiver是上面建的广播类
<receiver android:name=".BootReceiver">
<intent-filter>
<!--注册开机广播地址-->
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
复制代码
补充说明: 1.查看系统中是否安装了相似360管家的软件,为了加快开机速度,默认是关闭掉开机广播的,只须要在设置中打开便可。 2.若是监听不到广播,能够尝试同时监听广播和sd卡。 3.同时监听广播和sd卡,在application标签中,配置如下相关信息:app
<receiver android:name=".broadcastReceiver.BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
<intent-filter>
<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-filter>
</receiver>
复制代码
但愿能够帮助你们 若是哪里有什么不对或者不足的地方,还望读者多多提意见或建议ide