如果需要在Android开机时自动启动应用程序,可以通过响应android.intent.action.BOOT_COMPLETED广播消息来实现, Android系统启动结束时,会发出 android.intent.action.BOOT_COMPLETED 消息。要实现开机自启动应用或service,具体步骤如下:
1.在AndroidManifest.xml文件中生命需要的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2.在AndroidManifest.xml文件中静态注册广播接收器,用来接收系统开机后发出的广播并作出响应
/**广播接收器的路径**/
<receiver android:name=".receiver.MainReceiver">
<intent-filter>
/**声明广播接收器接收的action**/
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
3.新建广播接收器
public class MainReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
/**接收到开机广播时自动调用该方法**/
}
}
4.1.启动activity
在广播接收器的onReceive方法中添加如下代码
Intent intent=new Intent(context, TestActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
此时当手机开机后就会自动进入TestActivity的页面中
4.2启动service
在广播接收器中启动service和在activity中启动service代码一致,据其操作为在广播接收器的onReceive方法中添加如下代码
Intent intent=new Intent(context,MainService.class);
context.startService(intent);