开机启动service 避免杀死 (StartServiceByTimer)
public class FirstBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Intent intents = new Intent(context, getBroadcastReceiver.class); intents.setAction("com.huaqin.xiabing"); PendingIntent pend = PendingIntent.getBroadcast(context, 0, intents, 0); long time = SystemClock.elapsedRealtime(); AlarmManager alarm = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, 10 * 1000, pend); } } }利用AlarmManager 间隔10秒进行发送广播,启动service.
这个广播定义为了启动这个service
public class getBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("com.huaqin.xiabing")){ Intent intents=new Intent(); intents.setClass(context,DaemonService.class); context.startService(intents); } } }
service中使用
@Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); }
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name="com.example.startservicebytimer.FirstBroadcast" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> <receiver android:name="com.example.startservicebytimer.getBroadcastReceiver" > <intent-filter> <action android:name="com.huaqin.xiabing" /> </intent-filter> </receiver> <service android:name="com.example.startservicebytimer.DaemonService"> </service> </application>