您的位置:首页 > 移动开发 > Android开发

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

2017-01-16 09:30 537 查看
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"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息