我对Android还不太熟悉。我需要做的是在活动和服务之间本地发送数据。发送的信息很敏感,不能被其他应用程序捕获。如果我理解正确,这就排除了使用广播和onBind()函数?
因此,活动需要向服务发送一些字符串参数。同时,它需要以某种方式告诉服务哪个活动启动了它,以便服务可以回复到正确的类,因为许多不同的活动将使用此服务。一旦服务通过http请求获取了信息,它就应该将该数据(仅为长字符串,稍后将进行解析)发送回启动它的活动。我该如何处理这个问题?使用静态变量/函数不是一个选择,因为许多活动将使用此服务。当然,可以使用静态数组来保存这些类,但那看起来很丑...只能通过意图发送简单的变量(而不是对象)吗?一定有更好的方法来解决这个问题。我已经在网上冲浪了几个小时。任何帮助都将不胜感激。
编辑
因此,活动需要向服务发送一些字符串参数。同时,它需要以某种方式告诉服务哪个活动启动了它,以便服务可以回复到正确的类,因为许多不同的活动将使用此服务。一旦服务通过http请求获取了信息,它就应该将该数据(仅为长字符串,稍后将进行解析)发送回启动它的活动。我该如何处理这个问题?使用静态变量/函数不是一个选择,因为许多活动将使用此服务。当然,可以使用静态数组来保存这些类,但那看起来很丑...只能通过意图发送简单的变量(而不是对象)吗?一定有更好的方法来解决这个问题。我已经在网上冲浪了几个小时。任何帮助都将不胜感激。
编辑
Android开发者网站上的示例http://developer.android.com/reference/android/app/Service.html#stopSelf(int)对于实现本地绑定非常有帮助。
对于那些感兴趣的人,这里有一些我目前实现的更多信息:
- 一旦调用onServiceConnected函数,服务中的一个函数被调用以设置它绑定到哪个活动。之后,服务和活动可以相互交互。
- 确保服务类中的线程具有处理程序。这使得线程在完成任务后可以向其处理程序发送消息。然后,处理程序将服务返回的结果发送回其绑定的活动。通过处理程序执行此操作可以确保应用程序在主线程上运行。