Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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 当我设置postDelayed时间超过25天时,Runnable会以毫秒为单位连续被调用_Android_Runnable - Fatal编程技术网

Android 当我设置postDelayed时间超过25天时,Runnable会以毫秒为单位连续被调用

Android 当我设置postDelayed时间超过25天时,Runnable会以毫秒为单位连续被调用,android,runnable,Android,Runnable,当我设置postDelayed interval超过25天时,Runnable将以毫秒为单位连续被调用。它不会在25天后调用runnable,但会在应用程序崩溃后每10毫秒调用一次。我在这个runnable做网络操作。延迟后的时间是否有最大限制 mHandler.postDelayed(runnable, 600 * 60 * 60 * 1000); 你的数学是32位有符号整数,有一个溢出 600*60*60*1000是0x80befc00,它是一个负整数,升级为long时保持为负。使用负延迟

当我设置postDelayed interval超过25天时,Runnable将以毫秒为单位连续被调用。它不会在25天后调用runnable,但会在应用程序崩溃后每10毫秒调用一次。我在这个runnable做网络操作。延迟后的时间是否有最大限制

mHandler.postDelayed(runnable, 600 * 60 * 60 * 1000);

你的数学是32位有符号整数,有一个溢出

600*60*60*1000
0x80befc00
,它是一个负整数,升级为long时保持为负。使用负延迟调用
postDelayed()
表示“立即”,使用默认的
Handler
设置表示下一个vsync(每16毫秒刷新一次,刷新频率为60Hz)

要修复数学问题,请将其中一个操作数更改为long以处理64位整数,例如
600*60*60*1000L


无论如何,
Handler#postDelayed()
并不适合这种长时间运行的任务。请考虑,例如,代替.

你至少要给我们看一些代码。我建议你使用JoePoaStor而不是Runnable,你可以使用WorkManger来处理那个“FalHeNet et MtHunter”。PistPro(Runnabl,600×60×60×1000);@Reena,谢谢,您的解决方案正在运行,但我需要知道runnable每10毫秒被调用一次的根本原因。非常感谢您的解释