【发布时间】:2013-07-06 22:05:44
【问题描述】:
好的,我有一个带有 Activity (UI) 和 Service(后台轮询)的 Android 应用。两者使用 AIDL 错综复杂地连接(包括回调,因此它是双工通信、IPC 等)。
任何时候两人说话我都在使用它。
不过,我还扩展了 Application 类 - 以便两者可以共享公共数据对象。所以Application持有一个Service一直在使用的User对象,Activity在运行的时候也可以访问它。
应用程序还具有对 Activity 的 WeakReference(以避免上下文泄漏),因为用户有时会触发 UI 更新。
看起来像
Activity (UI) ---> Application <--- Service
我可以通过以下方式触发服务内的 UI 事件
_app = (FooApplication)this.getApplication();
FooActivity uiRef = _app.getUIReference().get();
if (uiRef != null) {
uiRef.updateSomeDisplay();
}
所以我不明白。当我只是弱引用 UI、查看它是否存在并调用它的方法时,为什么还要麻烦复杂的 AIDL 调用。
【问题讨论】:
标签: service callback aidl android