Android 如何让程序开机自动启动
时间: 2024-05-06 11:16:38 浏览: 126
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。
阅读全文