确定后台服务何时完成
目前,我正在我的应用程序中使用 Intent 启动后台服务,但是是否有办法确定服务何时完成?
..可能通过使用某种侦听器,或从服务发送消息到活动?
currently, i'm starting a background service using Intent in my app, but is there anyway of determining when the service has completed?
..possibly by using some kind of listener, or sending a message from the service, to the activity??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,活动和服务可以通信:最简单的是使用自定义广播。
其次,如果您的服务寿命很短,并且被调用它的活动所淘汰,那么您可能会考虑使用 AsyncTask 只需在后台线程中运行您的任务。
First, activities and services can communicate: the easiest is to use a custom broadcast.
Second, if your service is short lived and is outlived by activity invoking it, then you might instead consider using AsyncTask to simply run your task in the background thread.
您可以在此处使用的常用技巧是在 Activity 中创建一个 BroadcastReceiver 来侦听特定 Intent,然后当服务自行停止时触发该 Intent。
The usual trick you can use here is create a
BroadcastReceiver
in the Activity that listens for a specific Intent and then when the Service stops itself fire off that Intent.您可以在服务终止之前发送广播
Intent
并实现 广播接收器。You can send a broadcast
Intent
just before the service termination and implement a broadcast receiver.