【问题标题】:Proper Android Activity Cleanup to Reduce Memory Footprint适当的 Android Activity 清理以减少内存占用
【发布时间】:2014-12-11 22:05:06
【问题描述】:

也许这个问题有两个方面:

目标是减少 Android 应用的内存占用,并允许在内存为 512 MB 或更少的低端 Low/Med DPI 设备(旧版/付费电话等)上提供合理可用的体验。

我观察到的是,在导航一些活动后,性能会下降,假设是由于创建的活动被缓存。

在旨在减少内存占用的 Activity 导航之间进行清理的首选方法是什么?

【问题讨论】:

  • 如果不知道您的应用程序做了什么,就很难说出任何事情。

标签: android android-activity memory-management memory-footprint


【解决方案1】:

你写的

What's the preferred way to clean up in between Activity navigation aiming to reduce memory footprint?

您可以在启动新 Activity 时清除 Activity 堆栈:

Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这将关闭除 NextActivity 之外的所有活动。

或者,您可以在 Manifest 中指定,当您启动另一个 Activity 时,该 Activity 不应“继续存在”:

<activity
  android:name=".CurrentActivity"
  //...
  android:noHistory="true"/>

您还需要确保关闭的活动没有泄露,例如当您调用 onPause() 或 onStop() 时,您需要取消注册在您的 Activity 中注册的所有 BroadcastReceiver。

细节最终将取决于您的应用的具体情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2014-09-06
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多