0

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

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

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

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

4

1 回答 1

0

你写了

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() 时,您需要取消注册在您的活动中注册的所有广播接收器。

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

于 2014-12-11T22:32:45.140 回答