这意味着什么:对象是跨进程计算的引用。

时间:2012-08-21 07:25:42

标签: android

这句话是什么意思,它的含义是什么:

  

对象是跨进程计算的引用。

来自附加说明部分中的android interprocess documentation

是否与垃圾收集有关(每个进程都没有收集自己的对象)?

1 个答案:

答案 0 :(得分:1)

我阅读了@mparaz给我的链接,其中谷歌框架工程师Diane Hackborn讨论了Android Binder。

这是我从链接中理解的:

Android Binder是另一种内核中的IPC方法,它非常紧密地集成到Android核心的所有方面(从UI到系统的基础级别)。它结合了流程管理和进程间通信的各个方面。它被编写为内核模块,绕过/重新实现了一些linux进程控制机制。

据我所知,如果您使用这种类型的进程间通信,即使您的应用程序关闭,您仍然无法确定您的对象是否会被垃圾回收,除非您正在与之通信的应用程序也关闭并且该应用程序没有以任何其他应用程序的方式进行通信(除非是您的应用程序,否则您再也无法确定)。

所以基本上,在我看来,如果你以这种方式传递它们,你就不应该依赖垃圾收集。除此之外,其他人可以正常进行。

编辑1: 在相关的说明中,似乎有时这种IPC方法必须手动关闭(而不是放弃),否则它可能会使您的应用程序崩溃(参见Call your LicenseChecker's onDestroy() method to close IPC connections)。