【问题标题】:Intent to show running background processes意图显示正在运行的后台进程
【发布时间】:2013-09-13 13:48:24
【问题描述】:

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

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

  • 应用程序管理器 > 正在运行的进程(以便用户可以强制停止某些任务)

  • 或者更好的选择是从用户可能已安装的任何应用程序中进行选择,这些应用程序允许您执行直到进程(例如:高级任务管理器)

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

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

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

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

     startActivity(new Intent(Settings.ACTION_APPLICATION_SETTINGS));
    

    但是,为什么要关闭其他应用才能让您的应用正常运行。用户会卸载您的应用,而不是与您的应用伙伴搞砸!

    【讨论】:

    • 谢谢。这就是我要找的。我已经建议处理 OOM 异常的所有内容,但它仍然出现在我老板的手机上,而且只出现在他的手机上,因为他已经安装并运行了你能想到的所有应用程序。所以他看到了这个问题并想要这个解决方案。我知道这很糟糕,但我只是一个程序员。
    【解决方案2】:

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

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

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

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

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

    我不知道有这样的Intent

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

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

    【讨论】:

    • 我不是指我自己的活动,我是指在后台运行的其他应用程序。每当我遇到此错误时,我都会转到高级任务管理器并关闭所有正在运行的应用程序,然后返回我的应用程序并且它运行良好。我想指导用户在遇到这个问题时做同样的事情。我知道这是不好的做法,但这只发生在后台发​​生很多事情的手机上。
    • @user2045570:“每当我遇到此错误时,我都会转到高级任务管理器并关闭所有正在运行的应用程序,然后返回我的应用程序并且它运行良好” - 欢迎您相信任何您想要的东西.也欢迎您发布演示此行为的可重现测试用例。也欢迎您使用 MAT 进行诊断,并使用其他位图管理技术,为您的问题找到真正的解决方案。
    • 感谢您的建议。我实际上实施了大多数这些解决方案。问题是我无法重新调整位图的大小,因为它们是地图图块,我也无法回收它们,因为老板希望下载的地图图块保存在内存中。我会尝试为这个问题找到更好的解决方案。只是想要一个临时的给老板看,让他开心。
    猜你喜欢
    • 2019-07-22
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2023-03-10
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多