也许这个问题有两个方面:
目标是减少 Android 应用程序的内存占用,并允许在内存为 512 MB 或更少的低端 Low/Med DPI 设备(旧版/付费电话/等)上提供合理可用的体验。
我观察到的是,在导航一些活动后,性能会下降,假设是由于创建的活动被缓存。
在旨在减少内存占用的活动导航之间进行清理的首选方法是什么?
也许这个问题有两个方面:
目标是减少 Android 应用程序的内存占用,并允许在内存为 512 MB 或更少的低端 Low/Med DPI 设备(旧版/付费电话/等)上提供合理可用的体验。
我观察到的是,在导航一些活动后,性能会下降,假设是由于创建的活动被缓存。
在旨在减少内存占用的活动导航之间进行清理的首选方法是什么?
你写了
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() 时,您需要取消注册在您的活动中注册的所有广播接收器。
细节最终将取决于您的应用程序的具体情况。