Android:如何停止/清除我的Android小部件应用程序的缓存后台进程?

时间:2013-03-16 10:23:09

标签: android caching process background

有没有办法停止/清除我的Android Widget的缓存后台进程?

我的小部件使用较少的RAM内存(大约1 MB),但后台缓存进程中的内存很多(大约100/200 mb)。

有没有办法停止后台缓存进程或清除它?

3 个答案:

答案 0 :(得分:2)

设置>开发人员选项>应用程序>后台流程:否。

PS。不要满足于完整解决方案!

答案 1 :(得分:1)

我认为CommonsWare对On Android, what's the difference between running processes and cached background processes?的回答可能对您有所帮助。简而言之,似乎没有理由清除它。此外,如果您单击该过程,您将看到一条消息 “这是一个旧的应用程序,如果再次需要它,可以保持更快的速度。通常没有理由阻止它。”希望有所帮助。

答案 2 :(得分:0)

我认为通常有理由清除Android上的内存。当你上线时,Android(实际上是Google)会将一堆应用程序预加载为“缓存”。当你离线时,它会清除它们并加载更多。然后有像Google+这样的东西只会占据你手机内存的50Mb。因此,如果您需要删除所有未使用的元数据收集废话,以便您的应用有一些空间,您可以执行以下操作:

public void clearMem() {
    ActivityManager amgr = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> list = amgr.getRunningAppProcesses();
    if (list != null){
        for (int i = 0; i < list.size(); i++) {
            ActivityManager.RunningAppProcessInfo apinfo = list.get(i);

            String[] pkgList = apinfo.pkgList;
            if ((! apinfo.processName.startsWith("com.sec")) && ((apinfo.importance > 150) || (apinfo.processName.contains("google")))) {
                for (int j = 0; j < pkgList.length; j++) {
                    amgr.killBackgroundProcesses(pkgList[j]);
                }
            }
        }
    }
}