我有一个关于线程和服务的小问题。我有一个例子,它正在服务中运行的线程上通过互联网下载数据。我想知道的是如何检测线程何时完成(所有数据均已下载),然后调用服务的onDestroy()
,这将更新所有必须执行的活动中的UI。安卓完成线程服务和更新UI
任何建议如何做到这一点,是我应该做的正确方法。
在此先感谢!
我有一个关于线程和服务的小问题。我有一个例子,它正在服务中运行的线程上通过互联网下载数据。我想知道的是如何检测线程何时完成(所有数据均已下载),然后调用服务的onDestroy()
,这将更新所有必须执行的活动中的UI。安卓完成线程服务和更新UI
任何建议如何做到这一点,是我应该做的正确方法。
在此先感谢!
1)使用可以利用信使为了在活动和服务之间进行沟通。 2)如果你的数据存储在某个文件或数据库中,那么只需发送一个广播接收器,它会告诉活动它的时间刷新。 3)使用界面。但在这种情况下,您将不得不存储即使服务可以使用的该接口的对象。
首先这取决于你用什么样的网络客户端的下载数据,此客户端确定收到的数据结束后,你应该叫stopSelf()
方法在Service
对象类比onDestroy()
方法的块定义你的行动
onDownloadsFinished()
)服务回调。startService()
开始后台下载,则只需在onDownloadsFinished()
内拨打stopSelf()
即可。查询service documentation了解更多信息。
这个想法是,我想在线程完成时得到并在此之后停止我的服务。我不认为服务将在线程自动完成后停止运行。我想这样做,但我不知道如何 –
如何直接在代码中停止线程? – teoREtik
我不是这样做的,我想知道 –