我有一个Android应用程序,有大约50个活动。
目前我已经实现了默认行为,即当用户启动新活动时,我只是将现有的活动放入堆栈中,并且在用户按下之前不要删除。
我喜欢这个,因为用户可以随时按回来恢复他的上一次活动..
现在问题是在设计内存较少后出现OutOfMemory错误。
我能找到的一个解决方案是使用FLAG_ACTIVITY_CLEAR_TOP
,如文档中所解释的那样,将从堆栈中删除被调用活动的最后一个条目之上的活动。如果堆栈具有A-> B-> C-> D并且用户转到B C并且D从堆栈中移除。 我对这个解决方案的问题是,如果现在用户点击回来,他可能会转到A,而他可能会期待转到D ..
我的问题 :有没有办法在活动堆栈上定义最大限额?即如果我定义了15,那么堆栈中最多只有15个活动,第17个活动开始它将自动从堆栈中删除第一个活动并在堆栈中保持第2到第16个,如果我从第18个开始#&# 39;在堆栈中有第3到第17位。