首页 > 代码库 > AsyncHandler
AsyncHandler
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。