2011-03-29 69 views
2

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

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

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

你会推荐直接写入文件,还是使用sqlite?

回答

2

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

至于第二个问题,这取决于。如果你的数据相当复杂,里面有关系,应该以多种方式查询,那么sqlite是正确的选择。否则,您可以简单地将数据写入文件。

+0

感谢您的答案@Vladimir,我将使用服务:) – kabracity 2011-03-29 13:37:21