1.加入权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
2.定义广播
用于我们接受到系统发送的开机广播后,APP要去的处理…
package cn.pinming.aiinspection.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import cn.pinming.aiinspection.activity.StartActivity;
public class StartReceiver extends BroadcastReceiver {
public StartReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
//此处及是重启的之后,打开我们app的方法
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent intents = new Intent(context, StartActivity.class);
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 超级重大,如果缺少的话,程序将在启动时报错
intents.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//自启动APP(Activity)
context.startActivity(intents);
//自启动服务(Service)
//context.startService(intent);
}
}
}
3.注册广播
AndroidMainfest.xml静态注册广播,配置系统开机的intent-filter
<receiver
android:name=".receiver.StartReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
4.场景测试
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("AutoRun","我成功启动了!");
}
}
5.注意
(1)同一设备尽可能只允许一个APP实现开机自启动功能,否则会有未知冲突。
(2)针对Andorid4.0之后需先启动一次APP才可收到开机完成的广播,主要目的是防止恶意程序。
(3)查看设备是否有360之类的安全软件,如有:则再软件请在软件的自启动软件管理中将app设置为【允许】,重启手机,测试是否成功。
(4)查看系统设置里是否自带自启动软件管理的功能 ,如有:将app设置为【允许开机启动】,重启手机,测试是否成功
参考:https://blog.csdn.net/qq_20451879/article/details/105790345
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END




















暂无评论内容