gpt4 book ai didi

android - Fragment.onstart 在 Activity.onstart 之前被调用

转载 作者:行者123 更新时间:2023-11-29 15:42:40 27 4
gpt4 key购买 nike

MMuzammil: MainActivity:in onCreate
MMuzammil: FirstFragment:in onAttach
MMuzammil: FirstFragment:in onCreate
MMuzammil: FirstFragment:in onCreateView
MMuzammil: FirstFragment:in onActivityCreated
MMuzammil: FirstFragment:in onStart <----
MMuzammil: MainActivity:in onStart <----
MMuzammil: MainActivity:in onResume
MMuzammil: FirstFragment:in onResume

正如我们所看到的,我的 Fragment.onStart 在 Activity.onStart 之前被调用。任何人都知道这种行为的原因是什么?因为当Activity移动到前台时,Activity的回调方法应该总是先调用

Activity :

public class MainActivity extends AppCompatActivity {

public static final String TAG = "MMuzammil";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "MainActivity:in onCreate");
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new FirstFragment()).commit();
}

@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "MainActivity:in onStart");
}

@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "MainActivity:in onResume");
}

@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "MainActivity:in onPause");
}

@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "MainActivity:in onStop");
}

@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "MainActivity:in onDestroy");
}

@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "MainActivity:in onRestart");
}
}

最佳答案

这只是因为,您正在调用 super.onStart() 然后在您的 Activity 中打印日志。所以基本上你的 Activity 的 onStart() 首先运行。

我猜:)

关于android - Fragment.onstart 在 Activity.onstart 之前被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961671/

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