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的整数