【问题标题】:Standalone Worker Thread or IntentService?独立工作线程或 IntentService?
【发布时间】:2011-03-29 07:55:05
【问题描述】:

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

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

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

您会建议直接写入文件还是使用 sqlite?

【问题讨论】:

    标签: android multithreading sqlite file


    【解决方案1】:

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

    至于第二个问题,看情况。如果你的数据比较复杂,里面有关系,需要通过多种方式查询,那么 sqlite 是正确的选择。否则,您可以简单地将数据写入文件。

    【讨论】:

    • 感谢@Vladimir 的回答,那我会使用服务:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多