【问题标题】:How to cause Low Memory Condition on Android如何在 Android 上导致内存不足
【发布时间】:2015-08-27 09:20:24
【问题描述】:

如何在 Android 设备上导致内存不足的情况,以便我的 Activity 被销毁,并且关联的 Application 类在我的应用程序处于后台时接收 onTrimMemory()。我的应用程序在后台遇到与被 Android 操作系统杀死有关的恢复问题,并且希望能够单步执行调试器中的代码,但我无法定期生成这种情况,尤其是在连接时到调试器:)

谢谢你, 加里

【问题讨论】:

    标签: android android-debug


    【解决方案1】:

    另一种方法:
    在您的设备中:
    转到设置 -> 开发人员选项并选中“不保留活动”。
    这将在后台立即终止您的活动。

    【讨论】:

    • 谢谢,激活此选项后我发现了其他问题
    【解决方案2】:

    您通常可以通过将您的应用置于后台,然后启动 10-20 个应用(取决于设备)来触发此操作。这最终会导致您的进程被终止,我认为这将在onTrimMemory() 回调之前。

    【讨论】:

    • 我可以通过启动一堆应用程序来创建这个条件,然后当我重新启动我的应用程序时,不会调用 onCreate() 方法并且应用程序只是挂起。我已经在 onCreate()/onRestart()/onStart()/onResume() 中设置了断点,当我没有在前台启动太多应用程序时,它们都会被激活,但是一旦发生这种情况,就不会再发生任何事情了.此外,一旦将应用程序置于后台,Eclipse 断点似乎不再被触发。任何想法如何进行?
    • 在这种情况下调试器会变得非常慢。老实说,我只是开始为这种情况做一些调试日志记录,而不是实际的逐步调试。
    【解决方案3】:

    当您的应用在前台时,您可以通过 shell 杀死缓存的进程

    adb shell am kill-all
    

    然后离开你的应用程序(让它进入后台),很快它就会收到一个onTrimMemory() 回调。

    发生这种情况是因为系统认为有太多应用正在死机,这应该是内存不足的情况。

    【讨论】:

      猜你喜欢
      • 2012-12-15
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 2011-05-05
      相关资源
      最近更新 更多