![](/img/trans.png)
[英]How can I keep my app running in the background on iOS/Android with libGDX
[英]How do I keep my Android app running when it doesn't have focus?
即使不再具有焦点,如何保持我的android应用在后台运行? 现在发生的事情是,在被打扰(例如,一条消息到达)之后,当它重新获得焦点时,它只是坐在那里,处理完一切直到中断点。 可能我的设计不太好,因为我看不到从中断的地方恢复它的明显方法。 (设计的原因之一是,必须将长时间运行的查询的输出立即提供中间结果,而不是在最后一次给出所有中间结果。)
我还希望能够切换到另一个应用程序,但继续处理我的应用程序。 我想这与上述情况相同。
使用谷歌搜索service
来保持应用程序运行,但有人建议不要在用户必须与应用程序进行交互的情况下执行此操作(我的应用程序就是这种情况)。
我使用一个Asynctask
创建我的数据库 (一次;到目前为止,如果被打断就没有问题-在下一次执行时,我将从被中断的地方继续加载),并使用另一个AsyncTask
来查询它(这可能是一个运行时间很长的任务),但是这种方法不会使应用程序在后台运行。 任何中断都会使输出屏幕不完整和死机,或者将焦点返回到用户输入屏幕。
将查询功能(当前为AsyncTask
)更改为service
会是一个好主意吗? 可行吗? (用户在查询期间不会与应用进行交互。)
我目前有以下私人班级:
private class DatabaseOpenHelper extends SQLiteOpenHelper
private class LoadDatabase extends AsyncTask<Object, Integer, Void>
private class QueryDB extends AsyncTask<Object, String, Void>
您的输入将不胜感激。
编辑
下面的第一个答案表明使用Service
可以正常工作。
我认为Googling建议,如果我扩展IntentService
,我的任务将会更简单。
另一个编辑
是的, IntentService
正是我所需要的。 看到这个 。 从AsyncTask
更改为IntentService
非常简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.