这个问题折腾了我好久,也找了好的博客,还有嗯嗯,,网络上的东西。。。
记录一下,
首先,创建一个类继承自BroadcastReceiver。不明白怎么回事的自己百度。
public class AutoStartReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent i = new Intent(context, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
然后AndroidManifest.xml中要做两件事情:
一、添加开机启动权限
<!-- 开机启动权限 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
二、接收开机广播
<!-- 开机启动 广播接收信号需要放在主activity之前,才行-->
<receiver android:name=".AutoStartReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
这里有个重点:广播接收器必须放在主Activity之前,一般来说是MainActivity(带启动器的那个Activity);
前期不能实现开机自启的现象都是,一开机然后就让app挂掉。提示你的app已经停止运行。
MTK的安卓6.0系统的root了条件下测试完全没有问题。
红米note3 上测试貌似也没有问题。
更多的情况希望大家提出一起交流!!!
原创出品转载请注明出处。https://mp.csdn.net/postedit