1:註冊鬧鐘服務
public void startPollingService(Context context, int seconds, Class<?> cls,String action) {
//獲取AlarmManager系統服務
AlarmManager manager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
//包裝需要執行Service的Intent
Intent intent = new Intent(context, cls);
intent.setAction(action);
PendingIntent pendingIntent = PendingIntent.getService(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
//觸發服務的起始時間
long triggerAtTime = SystemClock.elapsedRealtime();
//使用AlarmManger的setRepeating方法設置定期執行的時間間隔(seconds秒)和需要執行的Service
manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP , triggerAtTime,
seconds * 1000, pendingIntent);
}
2:編寫鬧鐘到點時啓動的服務
public class PollingService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
}
@Override
public void onStart(Intent intent, int startId) {
new PollingThread().start();
}
class PollingThread extends Thread {
@Override
public void run() {
}
}
@Override
public void onDestroy() {
super.onDestroy();
System.out.println("Service:onDestroy");
}
}
或者廣播接收器
public class <span style="font-family: Arial, Helvetica, sans-serif;">PollingService</span><span style="font-family: Arial, Helvetica, sans-serif;"> extends BroadcastReceiver{ </span>
@Override
public void onReceive(Context context, Intent intent) {
Log.i("通知", "收到了廣播");
// 可以在此處添加響鈴的代碼
}
}
3:停止鬧鐘服務
public static void stopPollingService(Context context, Class<?> cls,String action) {
AlarmManager manager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, cls);
intent.setAction(action);
PendingIntent pendingIntent = PendingIntent.getService(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
//取消正在執行的服務
manager.cancel(pendingIntent);
}