Android:如何停止/清除我的 Android 小部件应用程序的缓存后台进程?
Posted
技术标签:
【中文标题】Android:如何停止/清除我的 Android 小部件应用程序的缓存后台进程?【英文标题】:Android: How to stop/clear cached background processes of my Android widget application? 【发布时间】:2013-03-16 10:23:09 【问题描述】:有没有办法停止/清除我的 android Widget 的缓存后台进程?
我的小部件使用较少的 RAM 内存(约 1 mb),但在后台缓存进程中使用大量内存(约 100/200 mb)。
有没有办法停止后台缓存进程或者清除它?
【问题讨论】:
只是好奇什么是缓存的后台进程? 当您继续设置/应用程序/运行/缓存后台进程时,您可以看到缓存的后台进程 【参考方案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]);
【讨论】:
以上是关于Android:如何停止/清除我的 Android 小部件应用程序的缓存后台进程?的主要内容,如果未能解决你的问题,请参考以下文章