【问题标题】:Android: How to stop/clear cached background processes of my Android widget application?Android:如何停止/清除我的 Android 小部件应用程序的缓存后台进程?
【发布时间】:2013-03-16 10:23:09
【问题描述】:

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

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

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

【问题讨论】:

  • 只是好奇什么是缓存的后台进程?
  • 当您继续设置/应用程序/运行/缓存后台进程时,您可以看到缓存的后台进程

标签: android caching process background


【解决方案1】:

设置 > 开发者选项 > 应用程序 > 后台进程:否。

PS。不要解决任何不完整的解决方案!

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 所以如果我需要更多内存来玩高清游戏,它会自动清除吗?|
    【解决方案3】:

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

    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]);
                    }
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多