背景:
我想知道在我停止之后谁启动了acore
进程,并在进程中调用了明确的数据。
日志:
Sep 12 18:50:08 localhost 172.16.4.165 ANDROID:+05:30 2015 000 0 | 09-12 18:49:48.630 I / ActivityManager(3304):启动proc android.process.acore用于内容提供者 com.android.providers.contacts / .ContactsProvider2:pid = 4805 uid = 10022 gids = {50022,1028}
日志中没有任何其他内容可以指向启动过程的内容。 acore
进程也有其他提供程序,但上面的日志会将其缩小到ContactsProvider2
问题:
当清理仍在进行时,该过程开始,这会导致数据库损坏。
我已尝试过的内容:
How to find out a calling activity for content provider in Android? 这有API级别19及以上的解决方案。但我的设备有API级别18
我在Binder.getCallingPid()
中试用onCreate()
这会返回自我PID
我通常直接在"服务"中使用的getCallingPid()
和getCallingUid()
方法。不适用于" ContentProvider"
答案 0 :(得分:0)
最后,这是我为那些感兴趣的人所做的。对于低于19的API级别,如果不修改框架,我找不到任何方法。
以下是我对ActivityManagerService.java的补丁,它帮助了我。
<b:else/>