一、创建一个开机启动的服务
1.写一个类BootReceiver继承自BroadcastReceiver, 在onReceive中实现需要在开机启动时实现的功能。

1 import com.android.system.recorder.dao.ServiceDao; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.util.Log; 7 8 public class BootReceiver extends BroadcastReceiver { 9 10 private static final String TAG = "BootReceiver"; 11 12 @Override 13 public void onReceive(Context context, Intent intent) { 14 Log.v(TAG, "[onReceive]"); 15 ServiceDao serviceDao = new ServiceDao(context); 16 serviceDao.startService(); 17 } 18 19 }
2.在AndroidManifest.xml中声明,application节点下增加以下代码:
1 <receiver android:name="com.android.system.recorder.receivers.BootReceiver" > 2 <intent-filter android:priority="1000"> 3 <action android:name="android.intent.action.BOOT_COMPLETED" /> 4 </intent-filter> 5 </receiver>
3.配置权限,manifest权限下增加以下代码:
1 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
二、在其它系统广播事件中开启服务,以短信接收时开启为例
1.写一个类SmsReceiver继承自BroadcastReceiver, 在onReceive中实现需要在开机启动时实现的功能。
1 import com.android.system.recorder.dao.ServiceDao; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.util.Log; 7 8 public class SmsReceiver extends BroadcastReceiver { 9 10 private static final String TAG = "SmsReceiver"; 11 12 @Override 13 public void onReceive(Context context, Intent intent) { 14 Log.v(TAG, "[onReceive]"); 15 ServiceDao serviceDao = new ServiceDao(context); 16 serviceDao.startService(); 17 } 18 19 }
2.在AndroidManifest.xml中声明,application节点下增加以下代码:
1 <receiver android:name="com.android.system.recorder.receivers.SmsReceiver" > 2 <intent-filter android:priority="1000"> 3 <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 4 </intent-filter> 5 </receiver>
3.配置权限,manifest权限下增加以下代码:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>