Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式';按';每60秒按一次按钮_Android_Timer - Fatal编程技术网

Android 以编程方式';按';每60秒按一次按钮

Android 以编程方式';按';每60秒按一次按钮,android,timer,Android,Timer,在我的应用程序中,我被要求添加一个自动更新功能。我试图做的是设置一个计时器事件,这样,如果用户在过去60秒内没有按下更新按钮,则执行“refreshButton.performClick();” 我一直在搜索,但找不到计时器与UI交互的示例。我不断遇到错误,比如“只有创建视图层次结构的原始线程” 如果用户按下按钮,我想重置计时器 这可能吗?您可以使用AlamManager类和后台服务每60秒运行一次代码 例如,请参见AlarmService_Service.java,您可以使用AlarmMana

在我的应用程序中,我被要求添加一个自动更新功能。我试图做的是设置一个计时器事件,这样,如果用户在过去60秒内没有按下更新按钮,则执行“refreshButton.performClick();”

我一直在搜索,但找不到计时器与UI交互的示例。我不断遇到错误,比如“只有创建视图层次结构的原始线程”

如果用户按下按钮,我想重置计时器


这可能吗?

您可以使用AlamManager类和后台服务每60秒运行一次代码


例如,请参见AlarmService_Service.java,您可以使用AlarmManager类和后台服务每60秒运行一次代码


例如,请参见AlarmService_Service.java,您只能从UI线程与aView交互

您可以在计时器任务中创建类似的内容

  • 在类中定义此变量:

    Handler=newhandler()

  • 在计时器任务调用中:

      handler.post(new Runnable(){ 
           public void run(){  
               refreshButton.performClick();  
           }
      });
    

您只能从UI线程与aView交互

您可以在计时器任务中创建类似的内容

  • 在类中定义此变量:

    Handler=newhandler()

  • 在计时器任务调用中:

      handler.post(new Runnable(){ 
           public void run(){  
               refreshButton.performClick();  
           }
      });
    

    • 我认为你走错了方向。与其尝试按下按钮,只需设置一个计时器来调用按钮按下后调用的相同方法,这将使操作更简单,并且不会无缘无故地涉及UI。

      我认为您走错了方向。与其尝试按下按钮,只需设置一个计时器来调用按钮按下后调用的相同方法,这将使操作更加简单,并且不会无缘无故地涉及UI。

      粘贴现有代码,以便我们可以帮助您修改/扩展粘贴现有代码,以便我们可以帮助您修改/扩展它这将导致更新发生,即使应用程序已退出。sgallegos的答案是imho更好、更容易实现。“报警管理器适用于希望在特定时间运行应用程序代码的情况,即使应用程序当前未运行”您可以在活动的onDestroy方法中简单地停止alaram服务。@Jave您是对的sgallegos方法更好而且易于实现。这将导致更新发生,即使应用程序已退出。sgallegos的答案是imho更好、更容易实现。“Alarm Manager适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行”您可以简单地在活动的onDestroy方法中停止alaram服务。@Jave you's right sgallegos方法更好、更容易实现。或者更好,调用
      handler.postDelayed(runnable,60000)。为了完全避免计时器,或者更好,调用
      handler.postDelayed(runnable,60000)。完全避免使用计时器。