Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Java 每5秒调用API的Android后台任务_Java_Android_Api_Android Service_Background Process - Fatal编程技术网

Java 每5秒调用API的Android后台任务

Java 每5秒调用API的Android后台任务,java,android,api,android-service,background-process,Java,Android,Api,Android Service,Background Process,我想通过API控制我的Android应用程序。 为此,我需要有一个每5秒调用一次API的后台任务(但它必须知道API何时完成,然后等待5秒并再次调用) 然后,如果API上有新数据,则控制应用程序方面,例如(播放视频、停止视频、播放视频播放列表) 我的问题是,实现这些需求的最佳解决方案是什么 我真的很感谢大家的帮助,再次感谢。 另外,我是android的新手 有关-控制应用程序方面的更多信息 我必须在300台平板电脑上进行视频播放器测试。所有这些同时发生 因此,应用程序将侦听/等待来自API的命令

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

然后,如果API上有新数据,则控制应用程序方面,例如(播放视频、停止视频、播放视频播放列表)

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

我真的很感谢大家的帮助,再次感谢。 另外,我是android的新手

有关-控制应用程序方面的更多信息

我必须在300台平板电脑上进行视频播放器测试。所有这些同时发生

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

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

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

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

谢谢大家。

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

试试以下方法:

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);

如果它在前台进程中,您可以使用java Timer,我可以在Activity?之外运行它吗。因此,每当应用程序上的活动处于活动状态时,此方法将始终运行?感谢您的帮助。如果您想停止线程,请使用以下命令:handler.removeCallbacks(interval);非常感谢。你希望每5秒钟你的方法都要正确调用。是的。我只是试了一下,没法用