gpt4 book ai didi

android - 奇怪的 Activity 生命周期。

转载 作者:行者123 更新时间:2023-11-29 17:46:18 25 4
gpt4 key购买 nike

当我第一次从我的主要 Activity 开始一个 Activity 时,它会通过 onCreate() 然后 onStart()。在应用程序中,如果我关闭屏幕,它会转到我保存一些数据的 onPause()。然后立即转到 onStop(),然后是 onDestroy(),然后再次,不打开屏幕到 onCreate()、onStart()、onPause()。
它是否应该在 onDestroy() 之后立即转到 onCreate()、onStart(),而不需要我做任何事情?

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_timegame);

}

@Override
protected void onResume() {
super.onStart();
if (checkFirstTimeRun())
initializeGame();
else
resumeGame();
}

@Override
protected void onPause() {
super.onPause();
saveGameData();
}

最佳答案

简短说明( Considering you are not using fragments ) :

  • Activity 创建是OnCreate , OnStart , OnResume
  • 旋转屏幕时OnPause , OnStop , OnDestroy - 再次OnCreate , OnStart , OnResume因为 Activity 被销毁并重新创建 onOrientation 更改

  • 因此,如果您不旋转 OnCreate , OnStart , OnResume不是第二次开除!

    了解执行哪些事件以及何时执行:

    Have a look at one of my answers i posted in stackoverflow - Click Here

    用例示例( Considering you are using fragments):

    示例项目 :

    I have an opensource project Download it here and execute it and see the log to understand >the sequence of events executes one after another(I have fragment also in this project exclude the >fragment logs if you don't need it)



    项目观察
  • 如果路径是Activity - FragmentOne并第一次改变方向然后触发的事件如下MainActivity-onCreate -FragmentOne-onAttach -FragmentOne-onCreate -FragmentOne-onCreateView -FragmentOne-onActivityCreated -FragmentOne-onStart -FragmentOne-onResume
  • 如果路径是Activity - FragmentOne - orientationchange并第一次改变方向然后触发的事件如下
  • MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume
  • 如果路径是Activity - FragmentOne - orientationchange - orientationchange并第一次改变方向然后触发的事件如下
  • MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume
  • 如果路径是Activity - FragmentOne - orientationchange - orientationchange - FragmentTwo并第一次改变方向然后触发的事件如下
  • MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onStop - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentTwo-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume
  • 如果路径是Activity - FragmentOne - orientationchange - orientationchange - FragmentTwo - orientationchange并第一次改变方向然后触发的事件如下
  • MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentOne-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onStop - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentTwo-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume - FragmentOne-onPause - FragmentOne-onSaveInstanceState - FragmentOne-onSaveInstanceState - FragmentOne-onStop - FragmentOne-onDestroy - FragmentOne-onDetach - FragmentOne-onDestroy - FragmentOne-onDetach - MainActivity-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onAttach - FragmentOne-onCreate - FragmentOne-onCreateView - FragmentTwo-onActivityCreated - FragmentOne-onStart - FragmentOne-onResume

    关于android - 奇怪的 Activity 生命周期。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26381598/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com