我正在研究应用程序的想法,并希望真正了解线程和服务在我的应用程序中将扮演什么角色。在一个非常简单的应用程序中,我希望每周从某种数据库更新一次列表视图。棒球场100项。因此,据我所知,到目前为止,我将有一个活动,其中包含一个由列表视图组成的UI。然后我会有一个服务。在这个服务中我将有一个帖子,这个帖子将负责下载。该服务仅用于确保在应用暂停或停止时下载可以继续。然后我可以使用消息/ runnable / asyncTask将此数据从我的线程发送到我的activity / UI。我是否正确地想到了这一点?
答案 0 :(得分:0)
我认为你错过了BroasdCastReceiver:
我希望每周更新一次列表视图
对于此任务,您需要安装警报。警报通常启动广播接收器,以确保手机没有睡眠。此BroadcastReceiver必须启动您的服务。我知道这听起来很复杂,但实施起来还不错:)
以下是我对其余问题的评论:
我将有一个活动,其中包含一个由列表视图组成的UI
正确
然后我会有一项服务。在这个服务中,我将有一个帖子,这个帖子将负责下载。
多数民众赞成也是正确的。
然后我可以使用消息/ runnable / asyncTask将这些数据从我的线程发送到我的activity / UI。
这可能会失败,因为您的服务不知道主要活动是否正在运行。什么是将列表数据写入共享文件,服务和活动都可以访问?
答案 1 :(得分:0)
如果您的应用程序真的如您所描述的那么简单,那么您可以在没有任何服务甚至线程的情况下执行此操作。
如果您决定使用另一个线程来加载数据,则不需要服务来托管该线程。由于您每周只检查一次远程服务,因此只需在启动“活动”时轮询远程服务。
我认为使用服务加载数据会使应用程序变得更加复杂。