0

OutOfMemoryError由于处理大量位图,我有一个应用程序有时会遇到问题。我发现了错误,我想向用户显示一个对话框,让他们知道他们需要终止一些后台任务以释放内存。如果有一个按钮可以打开执行此操作的应用程序,那就太好了。

有没有办法启动一个启动的 Intent:

  • Applications Manager > Running Processes(因此用户可以强制停止某些任务)

  • 甚至更好的选择是从用户可能安装的任何应用程序中进行选择,这些应用程序允许您完成进程(例如:高级任务管理器)

一个更好的选择是自动清除后台活动,但我怀疑这是可能的。

4

2 回答 2

1

由于处理大量位图,我有一个应用程序有时会遇到 OutOfMemoryError。

这意味着您自己的进程的堆不能为您的位图分配块。

我想向用户显示一个对话框,让他们知道他们需要终止一些后台任务以释放内存

即使您可以提出这样的对话,也将完全浪费您的时间和用户的时间。其他应用程序进程的存在或缺乏对您自己应用程序中的堆没有任何影响。

有没有办法启动一个启动的 Intent

我不知道这样的Intent.

一个更好的选择是自动清除后台活动,但我怀疑这是可能的。

finish()当您不再需要它们时,欢迎,甚至鼓励您自己的活动,以释放您的堆中的内存,以便您的应用程序的其余部分可以使用。

于 2013-09-10T00:25:18.793 回答
1

这可能无法解决问题或建议您正在寻找什么。但是当您加载大型位图和相关的 OOM 异常时,链接值得一读

要在设置中加载应用程序屏幕,这是您可以获得的关闭

 startActivity(new Intent(Settings.ACTION_APPLICATION_SETTINGS));

但是,为什么要关闭其他应用程序才能让您的应用程序正常工作。用户会卸载您的应用程序而不是搞乱您的应用程序伙伴!

于 2013-09-10T00:38:38.120 回答