我一直在寻找为这个具体问题找到漂亮,安全的解决方案,但还没找到,所以在这里,我在StackOverflow上发布我的第一个问题。
要详细说明我的问题,我有一个完整的aidl服务,其他一些进程绑定。我的服务将为连接到它的每个进程分配一些资源,我想使这个语句变为粗体,为进程进行资源分配,我进行某种会话跟踪,其中getCallingPid()和getCallingUid()播放会话标识符的作用。
所以这里的问题是Android永远不会告诉我们由于某种原因,绑定到我们的应用程序是否会消失,因此分配给该被破坏的进程的系统资源将被我们的服务所占用而浪费掉。
我发现一个可行的解决方案就是轮询ActivityManager.getRunningAppProcesses并计算当前和以前快照之间的设置差异,但这种方法看起来很脏。
有人能建议一些更好的方法吗?我真的很感激!
谢谢,
的Giorgi
答案 0 :(得分:1)
据我所知,Android不会告诉你进程何时被杀死。
我怀疑唯一的方法是每隔x秒或几分钟获取一个正在运行的应用程序列表,并以这种方式跟踪应用程序。我认为这也是你在问题中已经提出的建议。
它不漂亮,但它可能是唯一的方法之一。