很抱歉无法为您提供一些正式的信息来源,但是我也很好奇看到会发生什么并决定对其进行测试。根据我的测试,是的,您将面临内存不足的风险。
我必须在for循环中添加数量惊人的Fragments(超过一百个)OutOfMemoryError才能实现,但是确实发生了。和检查我的日志,我可以看到onCreate()和onCreateView()方法,被称为很多次了,但是onSaveInstance(),onPause()和onDestroy所有不叫。
作为参考,这是我将片段添加到后台的方式:
getSupportFragmentManager().beginTransaction().add(R.id.scene_fragment_container, mSceneFragment).addToBackStack("FOOBAR").commit();
我添加的片段有些简单:一个ImageView,一个EditText,一对TextViews,一个SeekBar和一个ListView。
但是,除非您在内存中保存了大量数据,否则这不是问题。
后来我尝试仅将50个添加到后堆栈,杀死该应用程序并重新启动它。正如我希望/猜到的那样,所有片段都已还原(并且调用了onSaveInstance()和onPause()方法),因此我的生命周期实现不是导致OutOfMemoryError触发的问题。