AsyncHandler

来源:互联网 发布:淘宝店铺宝贝详情页怎么装修 编辑:程序博客网 时间:2024/06/06 08:55

package com.ango.deskclock;import android.content.Context;import android.content.Intent;import android.os.Handler;import android.os.HandlerThread;/** * Helper class for managing the background thread used to perform io operations * and handle async broadcasts. */final class AsyncHandler {    private static final HandlerThread sHandlerThread =            new HandlerThread("AsyncHandler");    private static final Handler sHandler;    private static Runnable aRunnable;    static {        sHandlerThread.start();        sHandler = new Handler(sHandlerThread.getLooper());    }    public static void post(Runnable r) {        sHandler.post(r);    }        public static final boolean postDelayed(Context context, Alarm alarm, long delayMillis) {    final Context sContext = context;    final Alarm sAlarm = alarm;    aRunnable = new Runnable() {            @Override public void run() {                Intent playAlarm = new Intent(Alarms.ALARM_ALERT_ACTION);                playAlarm.putExtra(Alarms.ALARM_INTENT_EXTRA, sAlarm);                sContext.startService(playAlarm);              }    };    return sHandler.postDelayed(aRunnable, delayMillis);    }        public static final void removeCallbacks (){    sHandler.removeCallbacks(aRunnable);    }    private AsyncHandler() {}}

        AsyncHandler.post(new Runnable() {            @Override public void run() {                handleIntent(context, intent);                result.finish();                wl.release();            }        });


//        // Play the alarm alert and vibrate the device after 10 seconds so that the user can dismiss or snooze before the alarm alert.//        Intent playAlarm = new Intent(Alarms.ALARM_ALERT_ACTION);//        playAlarm.putExtra(Alarms.ALARM_INTENT_EXTRA, alarm);//        context.startService(playAlarm);        AsyncHandler.postDelayed(context, alarm, 10000); 

        AsyncHandler.removeCallbacks();  // remove the AsyncHandler.postDelayed(context, alarm, 10000) in AlarmReceiver.java






0 0