Android开机自动启动程序设置

本文介绍了如何在Android系统启动时自动运行程序。首先,创建一个BootReceiver继承BroadcastReceiver,并在onReceive方法中启动Activity和服务。然后,在AndroidManifest.xml中添加必要的权限RECEIVE_BOOT_COMPLETED和配置Receiver来监听BOOT_COMPLETED事件。当模拟器启动时,会看到一个对话框弹出,表明设置成功。
摘要由CSDN通过智能技术生成

Android开机自启动

 

1.定义一个BroadcastReceiver

Java代码 复制代码
  1. public class BootReceiver extends BroadcastReceiver {   
  2.     public void onReceive(Context ctx, Intent intent) {   
  3.         Log.d("BootReceiver""system boot completed");   
  4.         //start activity   
  5.         String action="android.intent.action.MAIN";   
  6.         String category="android.intent.category.LAUNCHER";   
  7.         Intent myi=new Intent(ctx,CustomDialog.class);   
  8.         myi.setAction(action);   
  9.         myi.addCategory(category);   
  10.         myi.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
  11.         ctx.startActivity(myi);   
  12.         //start service   
  13.         Intent s=new Intent(ctx,MyService.class);   
  14.         ctx.startService(s);   
  15.     }   
  16. }  
public class BootReceiver extends BroadcastReceiver {
	public void onReceive(Context ctx, Intent intent) {
		Log.d("BootReceiver", "system boot completed");
		//start activity
		String action="android.intent.action.MAIN";
		String category="android.intent.category.LAUNCHER";
		Intent myi=new Intent(ctx,CustomDialog.class);
		myi.setAction(action);
		myi.addCategory(category);
		myi.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		ctx.startActivity(myi);
		//start service
		Intent s=new Intent(ctx,MyService.class);
		ctx.startService(s);
	}
}

 2.配置Receiver的许可,允许接收系统启动消息,在AndroidManifest.xml中:

Xml代码 复制代码
  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

 3.配置Receiver,可以接收系统启动消息,在AndroidManifest.xml中

Xml代码 复制代码
  1. <receiver android:name=".app.BootReceiver">  
  2.     <intent-filter>  
  3.         <action android:name="android.intent.action.BOOT_COMPLETED"/>  
  4.         <category android:name="android.intent.category.HOME" />  
  5.     </intent-filter>  
  6. </receiver>  
        <receiver android:name=".app.BootReceiver">
        	<intent-filter>
        		<action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.HOME" />
        	</intent-filter>
        </receiver>

 4.启动模拟器,可以看到系统启动后,弹出一个对话框。

Android 中让程序开机自动启动,通常有两种方式: 1. 使用广播接收器 在 AndroidManifest.xml 文件中添加以下代码: ``` <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> ``` 然后创建一个 BroadcastReceiver,在接收到 `android.intent.action.BOOT_COMPLETED` 广播时启动你的程序。 示例代码: ```java public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Intent bootIntent = new Intent(context, YourActivity.class); bootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(bootIntent); } } } ``` 在 AndroidManifest.xml 中添加以下代码: ```xml <receiver android:name=".BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> ``` 2. 使用系统服务 在 AndroidManifest.xml 文件中添加以下代码: ``` <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> ``` 然后创建一个 Service,在 `onCreate()` 方法中启动你的程序。 示例代码: ```java public class BootService extends Service { @Override public void onCreate() { super.onCreate(); Intent bootIntent = new Intent(this, YourActivity.class); bootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(bootIntent); } @Override public IBinder onBind(Intent intent) { return null; } } ``` 在 AndroidManifest.xml 中添加以下代码: ```xml <service android:name=".BootService"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </service> ``` 注意:使用第二种方式需要在 Android 5.0 以上版本上进行测试,因为 Android 5.0 以下版本不支持在 Service 中启动 Activity。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值