https://github.com/xxv/android-lifecycle显示onAttach,onCreate,CreateView和onActivityCreated上的片段在活动onStart之前被调用。不过,我想记录此:Activity onStart()之前或之后是否调用片段的初始回调?
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e("TRACE", "MainActivity onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment firstFragment = FirstFragment.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.content, firstFragment).commit();
}
@Override
public void onStart() {
Log.e("TRACE", "MainActivity onStart");
super.onStart();
}
FirstFragment看起来是这样的:
public class FirstFragment extends Fragment {
public FirstFragment() {
// Required empty public constructor
}
public static FirstFragment newInstance() {
FirstFragment fragment = new FirstFragment();
return fragment;
}
@Override
public void onAttach(Context context) {
Log.d("TRACE", "FirstFragment onAttach");
super.onAttach(context);
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("TRACE", "FirstFragment onCreate");
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d("TRACE", "FirstFragment onCreateView");
return inflater.inflate(R.layout.fragment_first, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Log.d("TRACE", "FirstFragment onActivityCreated");
super.onActivityCreated(savedInstanceState);
}
它打印此:
- MainActivity的onCreate
- MainActivity在onStart
- FirstFragment onAttach
- FirstFragment的onCreate
- FirstFragment onCreateView
- FirstFragment onActivityCreated
- MainActivity的onResume
https://developer.android.com/guide/components/fragments.html#Lifecycle –
该链接与我的相同。它声明片段onActivityCreated在Activity onStart之前被调用,但我的日志语句显示它在 – user3148156