android - 如何在每个连续时间重复一个函数?

标签 android repeat

如何在每个定义的时间安排一个功能,并可以选择更改这个时间? 我发现我可以使用计时器和 timerTask 或处理程序来完成。我定义的时间不重复的问题,随机重复...

    runnable = new Runnable() {

        @Override
        public void run() {
            //some action
            handler.postDelayed(this, interval);
        }
    };

            int hours = settings.getIntervalHours();
            int minutes = settings.getIntervalMinutes();

            long interval = (hours * 60 + minutes) * 60000;

            changeTimerPeriod(interval);

private void changeTimerPeriod(long period) {
    handler.removeCallbacks(runnable);
    interval = period;
    runnable.run();
}

最佳答案

使用 Handler onCreate 方法中的对象。它的 postDelayed 方法导致 Runnable 参数被添加到消息队列并在经过指定的时间量(在给定示例中为 0)后运行。然后这将在固定的时间后排队(本例中为 1000 毫秒)。

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    android.os.Handler customHandler = new android.os.Handler();
    customHandler.postDelayed(updateTimerThread, 0);
}

private Runnable updateTimerThread = new Runnable()
{
    public void run()
    {
        //write here whaterver you want to repeat
        customHandler.postDelayed(this, 1000);
    }
};

关于android - 如何在每个连续时间重复一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14292749/

相关文章:

android - Jetpack Compose 显示来自 viewmodel 的小吃吧 - 单场直播 Activity

android - appBarLayout 在启动 Activity 时立即关闭

performance - XPages 性能 - 同一服务器上的 2 个应用程序,1 个运行,1 个不运行

C++。删除额外的连续重复字符串的最有效方法?

iphone - 如何将重复背景图像设置为表格单元格

bash - 我如何编写一个小的 Bash shell 脚本来每 5 秒重复一次操作?

android - 意式 Espresso 与我的 ACTION_SEND Intent 不匹配

java - 广告不可见。不刷新广告

android - 如何处理有关 Flurry Analytics 的 “android-security” 和 “TrustManager” 问题?

android - 重复的背景图像被拉伸(stretch)