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);
}