Android系统启动时,会发出android.intent.action.BOOT_COMPLETED广播,定义一个类继承自BroadcastReceiver,监听该广播,并在收到该广播时启动Service,就可以实现在系统启动时运行Service。
如定义类BroadReceiver继承自BroadcastReceiver,在Manifest文件中定义:
<receiver android:name=".BroadReceiver"> <intent-filter> <!-- 过滤系统启动广播 --> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver>
该类能够接收到android.intent.action.BOOT_COMPLETED广播。
Java文件:
public class BroadReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent){ // 收到系统启动广播后 if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { // 启动MainService Intent i1 = new Intent(context, MainService.class); context.startService(i1); } }
收到消息后,判断是否是android.intent.action.BOOT_COMPLETED消息,如果是,则用startService()方法启动Service。