我想跨进程提供某些信息(比方说状态变量 - 布尔值)。该变量的状态由服务维护,其他应用程序只能读取它(不修改它)。跨进程共享状态变量
我的第一个想法是SharedPreferences,但是有文档说明说明SharedPreferences的使用在多个进程中不受支持。这给我留下了服务消息,AIDL,意图和ContentProvider。
服务消息或AIDL不存在问题,因为它始终有一个异步部分(以及Intents)。我也想到了ContentProvider,但为了这个,它似乎有点夸张/臃肿。写入外部存储将允许其他进程修改数据。
所以,我错过了什么或者我想要完成的事情是不可能的? (或为此推荐)
在此先感谢。
我正在使用AIDL,但绑定是异步的正是我的问题,因为我需要从绑定到它的服务权限后读取值。 关于应用程序A和B;应用B依赖应用A的情况正是我的情况。应用程序A管理服务使用的数据。应用程序B登录到服务中。状态变量(或标志)会像'isSessionActive'布尔类型。 – takecare
@takecare:“我需要在绑定后从服务中读取值” - 然后使用“ContentProvider”,或将这些应用组合到一个应用中。 “应用程序A管理服务使用的数据。应用程序B登录到服务“ - 因为听起来没有其他应用程序是有用的,为什么他们分开的应用程序? – CommonsWare
我必须有单独的应用程序,因为这个想法是提供服务(它有点像客户端 - 服务器模型,作为服务器的服务器,在这种情况下,应用程序B是客户端)。应用程序B是一个示例应用程序,但可能还有更多。 – takecare