【问题标题】:I need to increment a number every second using threads in android我需要使用android中的线程每秒增加一个数字
【发布时间】:2020-01-20 03:13:30
【问题描述】:

这里我使用 Handler 来做,但它只会增加一个数字一次。我希望它增加数字,直到我使用 handler.removeCallbacksAndMessages(null); 停止它。

谁能指导我如何实现这一目标。我是安卓新手。

   Handler handler;
handler = new Handler();
 handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        count++;

                    }
                }, 1000);

【问题讨论】:

标签: android java-threads android-threading


【解决方案1】:

定义一个线程并启动它。

   Thread counterThread=new Thread(()->{
            try{
                while(true){
                counter++;
                Thread.sleep(1000);
                }
            }
            catch (Exception e){

            }
        });
    counterThread.start();

而当你想停止这个线程调用counterThread.interrupt();

【讨论】:

    【解决方案2】:

    试试这个

    Handler handler;
    handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
             count++;
             handler.postDelayed(this, 1000);
        }
    }, 1000);
    

    【讨论】:

      【解决方案3】:

      你可以

      • 每秒重新运行可运行对象
      • 使用 AlarmManager。

      我建议您查看this link,以更深入地了解如何实现延迟发布或警报管理器以每 X 秒重复一次任务的多种方式。

      编辑:我建议您在 onPause 方法中停止处理程序。

      【讨论】:

        猜你喜欢
        • 2015-09-13
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        • 2018-11-02
        • 1970-01-01
        • 2020-08-31
        相关资源
        最近更新 更多