独立工作线程或IntentService?

时间:2011-03-29 07:55:06

标签: android multithreading sqlite file

我是Android新手。我一直在阅读有关线程/服务的几个帖子和文档,我仍然无法弄清楚哪个是我的应用程序最合适的解决方案,所以我想知道你是否可以给我你的建议。

我的主UI应该有“开始”和“停止”按钮。 “start”将创建一个Thread,开始将信息(即电池统计,RSSI或其他)写入文件。按“开始”后,我将切换到其他应用程序,因此我的UI将处于“已停止”状态(如果我没有误解生命周期)。最终,我将回到我的应用程序,我希望能够停止该线程。

对于像下载/上传大文件这样长时间运行的任务,我读到最合适的方法是拥有一个IntentService,这样即使应用程序被停止(或者如果内存不足也会被破坏),服务会继续执行任务,直到完了。在我的应用程序中,服务不会自行停止(我希望它使用stopService命令停止),服务仍然是最好的方法吗?或者我应该只使用工作线程,因为我的UI在正常情况下不太可能被杀死?

您是否建议直接写入文件,或使用sqlite?

1 个答案:

答案 0 :(得分:2)

您所描述的内容看起来像Service。它独立于活动而工作,但必要时可以从中停止。线程或类似Android的更好的解决方案,AsyncTask,用于不长的事情,如下载不是一个大文件。

至于第二个问题,这取决于。如果数据相当复杂,内部存在关系并且应该以多种方式查询,那么sqlite是正确的选择。否则,您只需将数据写入文件即可。