在Windows平台中我们一定知道很多程序会开机自启动,那么我们的android应用程序如何实现开机自启动的呢?其实非常的简单,只要用android的广播机制就可以了,因为当android系统启动的时候会发送一个广播出去,所以关心这个广播的应用程序就会接收这个广播了。
那么首先,准备好我们的测试用的Activity
第二步,我们只需要自定义一个广播的接收者BootCompleteReceiver让它从BroadcastReceiver继承并且重写onReveiver方法
第三步就是注册这个广播接收者让它接收"android.intent.action.BOOT_COMPLETED"这个广播。
此外还要在Manifest.xml文件中添加如下权限:
那么首先,准备好我们的测试用的Activity
- package org.iSun.heisedeyueya;
- import android.app.Activity;
- import android.os.Bundle;
- public class AutoStartActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- System.out.println("boot completed");
- }
- }
第二步,我们只需要自定义一个广播的接收者BootCompleteReceiver让它从BroadcastReceiver继承并且重写onReveiver方法
- package org.iSun.heisedeyueya;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- public class BootCompleteReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- Intent start = new Intent();
- start.setClass(context, AutoStartActivity.class);
- start.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startService(start);
- }
- }
第三步就是注册这个广播接收者让它接收"android.intent.action.BOOT_COMPLETED"这个广播。
- <receiver android:name=".BootCompleteReceiver">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED"></action>
- </intent-filter>
- </receiver>
- <uses-permission android:name="android.permission.RECEIVER_BOOT_COMPLETED" />
那么通过上面的三步开机自启动就完成了
原文地址:点击打开链接