AlarmManager 全局闹钟

来源:互联网 发布:xml与json传输性 编辑:程序博客网 时间:2024/05/16 15:53

1:注册闹钟服务

public  void startPollingService(Context context, int seconds, Class<?> cls,String action) {//获取AlarmManager系统服务AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);//包装需要执行Service的IntentIntent 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秒)和需要执行的Servicemanager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP , triggerAtTime,seconds * 1000, pendingIntent);}

2:编写闹钟到点时启动的服务

public class PollingService extends Service {@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {}@Overridepublic void onStart(Intent intent, int startId) {new PollingThread().start();}class PollingThread extends Thread {@Overridepublic void run() {}}@Overridepublic 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);}







0 0
原创粉丝点击