android 开机自启动应用 (详细)

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"/>





猜你喜欢

转载自blog.csdn.net/guang_liang_/article/details/54571220