我在使用android Oreo时遇到了麻烦。我的MainActivity有4个片段,每当用户按下制表符时它们就会相互替换。现在的问题是,我在onPause中的单例实例中保存了一个值。每当用户按下下一个选项卡时,onPause之前会调用该片段的onResume,因此我无法正确检索单例中的值。
答案 0 :(得分:5)
请使用setReorderingAllowed作为false来获取正常的片段生命周期。
MainClass
答案 1 :(得分:0)
onResume应在onPause之前调用。 如果你想在开始片段之前保存一些东西,请在onStart中进行。如果你想在离开片段之前保存一些东西,请在onStop中进行。 More info on Fragment lifecycle
答案 2 :(得分:0)
在oreo版本中存在Fragment的一些问题。我创建了一个单独的应用程序来检查当我们用其他片段替换一个片段时调用的生命周期函数。这是日志:
MainActivity onCreate ->
FragmentA oncreate ->
FragmentA oncreateView ->
MainActivity onStart ->
FragmentA onStart ->
MainActivity onResume ->
FragmentA onResume ->
Button Pressed;that replace fragment A with Fragment B
FragmentB oncreate ->
FragmentB onCreateVew ->
FragmentB onStart ->
FragmentB onResume ->
FragmentA onPause ->
FragmentA onStop ->
FragmentA onDestroy ->
我正在导入导入android.app.Fragment。当我用android.support.v4.app.Fragment替换它时,它工作。