android - Android中带回调函数的通用定时器类

标签 android timer timertask

我正在尝试创建一个可以在我的应用程序中使用计时器的通用类。

我想向它传递一个必须在 UI 线程上运行的函数,因为这个计时器主要用于 GUI。

这是我目前所拥有的,但是我不确定如何实现它的回调部分,而且我在使用 runOnUiThread 时遇到了问题,因为如果我通过一个上下文,它希望我将它转换为一个 Activity 类型.但是我希望能够从任何 Activity 中调用这个计时器类。

这是我的类(class):

public class AutoTimer extends Timer {

Timer autoRefreshTimer;
TimerTask task;

public AutoTimer(int delay, int period, Context context) { // todo add
                                                            // callback as
                                                            // param

    autoRefreshTimer = new Timer();
    createTask(context);
    autoRefreshTimer.scheduleAtFixedRate(task, delay, period);
}

private void createTask(final Context context) {
    task = new TimerTask() {
        @Override
        public void run() {
            /*
             * context.runOnUiThread(new Runnable() {
             * 
             * @Override public void run() { //run callback method from the
             * calling activity } });
             */

        }
    };
}
}

你能帮我解决我的两个问题吗。

所以我想这样调用它:

AutoTimer timer = new AutoTimer(0,1000,Activity.this,callbackfunction());

最佳答案

考虑使用库存 CountDownTimer类。

关于android - Android中带回调函数的通用定时器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22448224/

相关文章:

android - 如何为 Twitter 创建矢量绘图?

android - 如何以编程方式填充 Android 设备日历应用程序上的提醒部分?

c# - 为什么整数属性有时会返回 0?

javascript 计时器显示自下订单以来的时间滴答

java - 我的计时器正在执行的方法一直失败

java - 让scheduleAtFixedRate接受小时而不是毫秒?

android - Android App如何查看设备是空闲还是移动?

android - 如何在 ImageView 中获取 Drawable 的尺寸?

c# - 计时器在 60 秒后重置

Android - 2 定时器或其他东西?