android 4.0以后 android就可以实现开机自启动app了。下面我说一下操作原理:
android可以通过 receiver 接收者来接收 android 开机广播实现开机自动。这样我们就有机可乘了,放一个 service 在 receiver 中,然后通过这个服务中写代码来启动app。
下面上代码吧。
1、写出接收广播
public class BootCompletedReceiver extends BroadcastReceiver {
//重写onReceive方法
@Override
public void onReceive(Context context, Intent intent) {
//后边的XXX.class就是要启动的服务
Intent service = new Intent(context, ServiceCrack.class);
context.startService(service);
Log.v("TAG", "开机自动服务自动启动.....");
}
}
2、在AndroidManifest.xml中注册广播
<receiver android:name=".receiver.BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
receiver和service 是和activity同级别的哦 , 别放错地方了
3、编写自己的service
public class ServiceCrack extends Service {
public ServiceCrack(){
super();
}
public IBinder onBind(Intent arg0){ //这是Service必须要实现的方法,目前这里面什么都没有做
//只是在onCreate()方法中打印了一个log便于测试
return null;
}
public void onCreate(){
super.onCreate();
Intent intent=new Intent(ServiceCrack.this, WelcomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Log.d("TAG2","test service");
}
}
4、在
AndroidManifest.xml中注册服务
<service
android:name = ".receiver.ServiceCrack">
</service>
receiver和service 是和activity同级别的哦 , 别放错地方了
5、当然得有权限了啊 (重要)
<!--开机自启动-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>