在看android developer里的Connecting to the Network时,有一个问题。
当我在activity里创建fragment后并且调用fragment里的一个方法。发现调用fragment方法前会先调用fragment的方法。
所以我写了代码测试以下:
MainActivity:
public class MainActivity extends FragmentActivity {
private FragmentTest fragmentTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentTest = new FragmentTest();
//通过一个按钮创建fragment,并调用fragment的方法
findViewById(R.id.start_fragment_text)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//关联fragment
getSupportFragmentManager().beginTransaction()
.add(fragmentTest,FragmentTest.TAG)
.commit();
//调用fragment的方法
fragmentTest.oneMethod();
}
});
}
}
FragmentTest :
public class FragmentTest extends Fragment {
public static String TAG = "FragmentTest";
@Override
public void onAttach(Context context) {
super.onAttach(context);
Log.d(TAG,"onAttach");
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"onCreate");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.d(TAG,"onCreateView");
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.d(TAG,"onActivityCreated");
}
@Override
public void onStart() {
super.onStart();
Log.d(TAG,"onStart");
}
@Override
public void onResume() {
super.onResume();
Log.d(TAG,"onResume");
}
@Override
public void onPause() {
super.onPause();
Log.d(TAG,"onPause");
}
@Override
public void onStop() {
super.onStop();
Log.d(TAG,"onStop");
}
@Override
public void onDestroyView() {
super.onDestroyView();
Log.d(TAG,"onDestroyView");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG,"onDestroy");
}
@Override
public void onDetach() {
super.onDetach();
Log.d(TAG,"onDetach");
}
public void oneMethod(){
Log.d(TAG,"oneMethod");
}
}
调试信息:
D/FragmentTest: oneMethod
D/FragmentTest: onAttach
D/FragmentTest: onCreate
D/FragmentTest: onCreateView
D/FragmentTest: onActivityCreated
D/FragmentTest: onStart
D/FragmentTest: onResume
求解释原因 QAQ 。。。