我在过去的两周里一直在阅读有关本地和远程Android服务,IPC,AIDL的大量阅读......当我认为我理解了一些事情时,我又一次搞砸了。
我的目的是发送一些数据供另一台设备接收。例如,共享一个字符串数组或任何其他对象。
有一些基本的概念,我仍然没有得到:我是否必须实现应用程序必须听的网络服务?否则,另一台设备上的应用程序怎么会知道有“消息”在等待?
任何人都可以为这样的典型任务起草一个基本的建筑吗?
Messenger服务,本地服务,AIDL,Parcelable,Web服务??
抱歉无知。我真的很混淆了非常基本的概念。
谢谢。
答案 0 :(得分:2)
这是Android上运行在后台处理任务的事情。像线程的东西,但更像是一个看不见的活动。
它可以是本地服务(在与其通信的活动的过程中)或远程服务。如果它是远程服务,则需要序列化进程之间的所有通信。该机制称为IPC。
对于Android上的IPC,您可以使用AIDL来定义服务的远程接口(因为您无法在其他进程中调用方法),并且您可以使用Parcellable来序列化对象。
Messanger Service是一种服务类型,它使用android的Message类在进程之间传输数据。
上述所有内容仅用于在设备内部进行操作。不与其他设备一起使用。
涉及网络服务器和互联网,它不是特定于Android的。你更好的维基百科:)
有几种方法可以做到这一点,创建一个像聊天服务器一样的Web服务,允许发送/轮询已注册设备的消息是一种方法。通过TCP直接通信(在本地WiFi中)另一个。取决于你需要什么。
处理网络通信并让您的活动发送/接收消息的服务可能是一个好主意。但是,没有通用模式可以完全做到这一点,这取决于您的应用程序需要什么。