【问题标题】:Android background task for calling API every 5 seconds每5秒调用一次API的Android后台任务
【发布时间】:2015-03-10 02:13:40
【问题描述】:

我想通过我的 API 控制我的 Android 应用。 为此,我需要有一个每 5 秒调用一次 API 的后台任务(但它必须知道 API 何时完成,然后等待 5 秒并再次调用)。

然后如果API上有新数据,控制App方面如(播放视频,停止视频。播放视频播放列表)

我的问题是,实现这些要求的最佳解决方案是什么。

我真的很感谢任何帮助,再次感谢。 附:我是安卓新手。

更多信息 - 控制应用的各个方面

我必须在 300 台平板电脑上进行视频播放器测试。都在同一时间。

因此应用程序将侦听/等待来自 API 的命令。 默认的 API 命令为 false。

当有新命令时(即播放视频 1)。应用程序将执行它。

API 将通过的一些推荐可以是: 播放视频,停止视频。播放所有视频。退出应用程序。

因此,API Listener 方法必须始终在后端运行,如果有新命令而不是执行它。

谢谢大家。

【问题讨论】:

  • 如果它在前台进程中你可以使用java timer

标签: java android api android-service background-process


【解决方案1】:

我建议您使用Timer 调度计时器每 5 秒运行一次(5000 毫秒,因为 Timers 的调度方法以毫秒为单位获取循环速率),然后有一个布尔机制来知道 API 何时在哪里完成然后,您将使用Timer.cancel,如果是 5 秒,请再次安排,也就是说,如果“它必须知道 API 何时完成,然后等待 5 秒并再次调用”,您的意思是让它获取信息然后等待 5几秒钟,直到完成,然后再次获取它。否则,您需要做的就是让计时器每 5 秒循环一次。

【讨论】:

    【解决方案2】:

    试试这个:

    Runnable refresh;
       refresh = new Runnable() {               
                public void run() {
    
    
                Toast.makeText(MainActivity.this, "C'Mom no hands!", Toast.LENGTH_SHORT).show();
    
    
                        handler.postDelayed(refresh, 3000);
    
    
                }
            };
            handler.post(refresh);
    

    【讨论】:

    • 我可以在 Activity 之外运行它吗? .因此,只要应用程序上的活动处于活动状态,此方法将始终运行。 ?感谢您的帮助。
    • 你想在哪里停止线程使用这个:handler.removeCallbacks(interval);谢谢!!
    • 你希望你的方法每 5 秒调用一次。
    • 是的。我只是在 onCreate 上试了一下,但无法正常工作
    猜你喜欢
    • 2019-04-21
    • 2013-04-25
    • 1970-01-01
    • 2016-07-24
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2018-12-14
    相关资源
    最近更新 更多