当操作系统启动完毕之后会广播一个消息叫ACTION_BOOT_COMPLETED,应用程序可以通过实现BroadcastReceiver接口来监听这个消息,接到消息之后就可以启动程序,一般启动一个后台运行的Service,当然也可以直接启动某个activity. 我们来写个简单的service,以便在接收到系统启动完成的消息之后来启动这个后台执行的service
public class BootStartService extends IntentService {
public UpdateService(){
this("app start service");
}
public UpdateService(String name) {
super(name);
}
@Override
protected void onHandleIntent(Intent workIntent) {
//启动
String arg = workIntent.getStringExtra("arg");
Log.d("BootStartService", "BootStartService start");
//...做一些默默无闻的事情
}
}
实现接口BroadcastReceiver来监听消息
public class BootStartReceiver extends BroadcastReceiver {
static final String action_boot="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(action_boot)){
Intent mServiceIntent = new Intent(context, BootStartService.class);
mServiceIntent.putExtra("arg", "app start args");
context.startService(mServiceIntent);
}
}
}
那么代码就已经完成了,记得在AndroidManifest.xml中加入下面的声明