也许这个问题是双重的:
目标是减少 Android 应用程序的内存占用,并在具有 512 MB 内存或更小的低端低/中 DPI 设备(旧版/付费手机等)上提供合理的可用体验。
我观察到的是,在浏览一些活动后,假设由于创建的活动被缓存,性能会下降。
在旨在减少内存占用的活动导航之间清理的首选方法是什么?
你写的
What's the preferred way to clean up in between Activity navigation aiming to reduce memory footprint?
启动新活动时,您可以通过执行以下操作来清除活动堆栈:
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
这将关闭除"下一个活动"之外的所有活动。
通常,您可以在清单中指定,当您启动另一个活动时,活动不应"继续":
<activity
android:name=".CurrentActivity"
//...
android:noHistory="true"/>
您还需要确保关闭的活动不会泄露,例如,当您调用onPause()或onStop()时,您需要注销在您的活动中注册的所有BroadcastReceiver。
详细信息最终将取决于应用的具体情况。