1.定时唤醒
在使用service进行后台长时间工作时,cpu或网络在休眠或深度睡眠的情况下不能正常工作
通过alarm进行定时的开启服务
代码片段
private void startTicker() { if (mPendingIntent == null) { mPendingIntent = PendingIntent.getService(this, 0, new Intent( "com.action.ticker"), 0); } if (mAlarmManager == null) { mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); } mAlarmManager.cancel(mPendingIntent); mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2 * 60000, mPendingIntent); } private void stopTicker() { if (mPendingIntent == null) { mPendingIntent = PendingIntent.getService(this, 0, new Intent( "com.action.ticker"), 0); } if (mAlarmManager == null) { mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); } mAlarmManager.cancel(mPendingIntent); }
代码片段
private void startTicker() { if (mPendingIntent == null) { mPendingIntent = PendingIntent.getService(this, 0, new Intent( "com.yqfz.bus.ticker"), 0); } if (mAlarmManager == null) { mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); } mAlarmManager.cancel(mPendingIntent); mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2 * 60000, mPendingIntent); } private void stopTicker() { if (mPendingIntent == null) { mPendingIntent = PendingIntent.getService(this, 0, new Intent( "com.yqfz.bus.ticker"), 0); } if (mAlarmManager == null) { mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); } mAlarmManager.cancel(mPendingIntent); }