Android系统启动时,会发出android.intent.action.BOOT_COMPLETED广播,定义一个类继承自BroadcastReceiver,监听该广播,并在收到该广播时启动Service,就可以实现在系统启动时运行Service。
如定义类BroadReceiver继承自BroadcastReceiver,在Manifest文件中定义:
1
2
3
4
5
6 |
<receiver android:name= ".BroadReceiver" > <intent-filter> <!-- 过滤系统启动广播 --> <action android:name= "android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> |
该类能够接收到android.intent.action.BOOT_COMPLETED广播。
Java文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
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。
原文:http://www.cnblogs.com/mstk/p/3632623.html