Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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 使用RoboSpice支持离线后台任务{将倒计时与RoboSpice结合}_Android_Countdowntimer_Robospice_Android Background - Fatal编程技术网

Android 使用RoboSpice支持离线后台任务{将倒计时与RoboSpice结合}

Android 使用RoboSpice支持离线后台任务{将倒计时与RoboSpice结合},android,countdowntimer,robospice,android-background,Android,Countdowntimer,Robospice,Android Background,我正在执行一项需要很长时间(脱机)的活动。我在我的应用程序中发送和接收(读取)短信。为此,我使用了一个倒计时类,它有一个侦听器onTick()和onFinish()。在onTick()侦听器中,我正在检查是否有任何新消息,如果预期消息中有任何新消息,它将停止计时器并将其显示在我的屏幕上。一切似乎都很好。当我离开并重新进入应用程序或更改方向时,问题就会出现 在处理网络呼叫时,robospice会处理所有这些活动转换问题。因此,我想使用robospice解决上述问题。我在github中看到了robo

我正在执行一项需要很长时间(脱机)的活动。我在我的应用程序中发送和接收(读取)短信。为此,我使用了一个倒计时类,它有一个侦听器
onTick()
onFinish()
。在
onTick()
侦听器中,我正在检查是否有任何新消息,如果预期消息中有任何新消息,它将停止计时器并将其显示在我的屏幕上。一切似乎都很好。当我离开并重新进入应用程序或更改方向时,问题就会出现

在处理网络呼叫时,robospice会处理所有这些活动转换问题。因此,我想使用
robospice
解决上述问题。我在
github
中看到了
robospice
离线示例。但是,
LoadDataFromNetwork()
不处理任何侦听器。它只是执行一项长期任务

如果我将脱机示例与我的问题关联起来,那么我所要做的就是在我的
onTick()
侦听器和
loadDataFromNetwork()中调用
spiceManager.execute()
方法
只需从我的收件箱中读取邮件,检查是否有任何所需类型的邮件,并将其返回给
请求侦听器
。但那不是我想要的。我想让robospice调节整个计时器类

只有当我在计时器
ontick()
Listener中执行读取活动时,我才知道如何启动
robospice
requestlisteners


机器人世界真的有可能做到这一点吗??如果没有,请给我一个解决方案来处理第一段中提到的实际问题。

如果您正在切换到使用RoboSpice,那么似乎不需要
倒计时装置,您可以在
loadDataFromNetwork
中实现您自己的轮询。这将在
服务中的工作线程中执行,因此阻止此线程不会影响您的UI

因此,一个简单的for循环和sleeps应该得到相同的结果

需要注意的一点是
SpiceService
配置为使用的线程数。如果这是一个运行时间很长的任务,并且您使用的是默认的单工作线程,那么我相信您将阻止后续的
请求。如果尚未对
SpiceService
类进行子类化,则可以这样做并重写
getThreadCount
方法以返回大于1的整数