【发布时间】:2010-08-13 14:24:12
【问题描述】:
我对 Android 有点陌生。我需要做的是在本地活动和服务之间来回发送数据。发送的信息属于敏感信息,不得被其他应用获取。如果我理解正确,这不包括使用广播和 onBind() 函数?
所以活动需要向服务发送一些字符串参数。它还需要以某种方式告诉服务哪个活动启动了它,以便服务可以回复正确的类,因为许多不同的活动将使用该服务。一旦服务通过 http 请求获取了信息,它就会将该数据(只是一个稍后将被解析的长字符串)发送回启动它的活动。我该怎么做呢?使用静态变量/函数不是一个选项,因为许多活动将再次使用此服务。当然可以使用静态数组来保存类,但这看起来很丑……只能通过意图发送简单的变量(而不是对象)?必须有更好的方法来做到这一点。我已经在网上冲浪了好几个小时了。任何帮助将不胜感激。
编辑
在 Android Developers [http://developer.android.com/reference/android/app/Service.html#stopSelf(int)] 上找到的示例对实现本地绑定器有很大帮助。
对于那些感兴趣的人,这里有一些关于我迄今为止的实施的更多信息。
- 一旦调用 onServiceConnected 函数,就会调用服务中的函数来设置它绑定到的活动。之后,服务和活动都可以来回交互。
- 确保服务类中的线程具有处理程序。这使线程能够在完成其任务后向其处理程序发送消息。然后,处理程序将结果从服务发送回其绑定的活动。通过处理程序执行此操作可确保完成此操作后应用程序返回主线程。
【问题讨论】:
标签: android android-intent android-activity service