前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AsyncHandler

AsyncHandler

作者头像
全栈程序员站长
发布2022-07-06 11:13:54
1460
发布2022-07-06 11:13:54
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君。

代码语言:javascript
复制
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() {}
}
代码语言:javascript
复制
        AsyncHandler.post(new Runnable() {
            @Override public void run() {
                handleIntent(context, intent);
                result.finish();
                wl.release();
            }
        });
代码语言:javascript
复制
//        // 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); 
代码语言:javascript
复制
        AsyncHandler.removeCallbacks();  // remove the AsyncHandler.postDelayed(context, alarm, 10000) in AlarmReceiver.java

版权声明:本文博客原创文章,博客,未经同意,不得转载。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117151.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档