4

我的应用程序在 Process1 中运行,我正在使用由另一个在 Process2 下运行的应用程序提供的内容提供程序。当 Process2 终止时,它会导致在 Process1 下运行的我的应用程序被终止。

09-14 23:31:52.583   782  1351 I ActivityManager: Killing 11797:com.example.myapp/1000 (adj 100): depends on provider com.example.exampleapp/com.example.exampleapp.MyContentProvider in dying proc com.example.exampleapp (adj 100)
09-14 23:31:52.585   782   812 W libprocessgroup: kill(-11797, 9) failed: No such process
09-14 23:31:52.585   782   812 I libprocessgroup: Successfully killed process cgroup uid 1000 pid 11797 in 0ms
09-14 23:31:52.623   368   368 I Zygote  : Process 11797 exited due to signal (9)

我在 SO中遇到了这个很好的答案,它基本上解释了当我们对内容提供者进行内容观察者与查询时会发生什么。

但我不清楚为什么甚至 android 会杀死整个过程。为什么这不能在应用程序级别处理,在DeadObjectException与运行在其他进程上的绑定服务交互时,我们面临类似的帮助,并且它出现故障。

我同意 Android 在获取的帮助下提供了处理此问题的替代方法,unstableContentProviderClient但我不相信他们为什么需要终止客户端进程?我很担心,因为不仅内容提供程序查询源将在进程中运行 - 该进程中还可能运行其他逻辑。为什么框架会杀死应用程序并重新启动它?

4

0 回答 0