首先,在AndroidManifest將它添加到你的活動:android:configChanges="orientation"
1)。 onConfigurationChanged
2)。沒什麼,但你可以實現你的方法和活動稱之爲onConfigurationChanged
3)。流程進行Activity.onConfigurationChanged -> Fragment.yourMethod
希望這有助於。
修訂
這是你的流量,當你開始活動第一次:
Activity.onCreate
Activity.onStart
Fragment.onAttach
Fragment.onCreate
Fragment.onCreateView
Fragment.onViewStateRestored
Fragment.onStart
Activity.onResume
片段。的onResume
這裏是流後取向改變:
Activity.onPause
Fragment.onPause
Activity.onSaveInstanceState
Fragment.onSaveInstanceState
Activity.onStop
Fragment.onStop
活動。的onDestroy
Fragment.onDestroy
Fragment.onDetach
Fragment.onAttach
Fragment.onCreate
Activity.onCreate
Activity.onStart
Fragment.onCreateView
Fragment.onViewStateRestored
Fragment.onStart
Activity.onRestoreInstanceState
Activity.onResume
Fragment.onResume
這裏的代碼來檢查:
public class FooActivity extends FragmentActivity {
private static final String LOG_TAG = FooActivity.class.getSimpleName() + "_TAG";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(LOG_TAG, "Activity.onCreate");
setContentView(R.layout.activity_foo);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new BarFragment())
.commit();
}
}
@Override
protected void onPause() {
Log.i(LOG_TAG, "Activity.onPause");
super.onPause();
}
@Override
protected void onStop() {
Log.i(LOG_TAG, "Activity.onStop");
super.onStop();
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "Activity.onDestroy");
super.onDestroy();
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "Activity.onResume");
super.onResume();
}
@Override
protected void onStart() {
Log.i(LOG_TAG, "Activity.onStart");
super.onStart();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.i(LOG_TAG, "Activity.onConfigurationChanged");
super.onConfigurationChanged(newConfig);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
Log.i(LOG_TAG, "Activity.onSaveInstanceState");
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.i(LOG_TAG, "Activity.onRestoreInstanceState");
super.onRestoreInstanceState(savedInstanceState);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class BarFragment extends Fragment {
public BarFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i(LOG_TAG, "Fragment.onCreateView");
View rootView = inflater.inflate(R.layout.fragment_bar, container, false);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "Fragment.onCreate");
super.onCreate(savedInstanceState);
}
@Override
public void onAttach(Activity activity) {
Log.i(LOG_TAG, "Fragment.onAttach");
super.onAttach(activity);
}
@Override
public void onViewStateRestored(Bundle savedInstanceState) {
Log.i(LOG_TAG, "Fragment.onViewStateRestored");
super.onViewStateRestored(savedInstanceState);
}
@Override
public void onSaveInstanceState(Bundle outState) {
Log.i(LOG_TAG, "Fragment.onSaveInstanceState");
super.onSaveInstanceState(outState);
}
@Override
public void onResume() {
Log.i(LOG_TAG, "Fragment.onResume");
super.onResume();
}
@Override
public void onStart() {
Log.i(LOG_TAG, "Fragment.onStart");
super.onStart();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.i(LOG_TAG, "Fragment.onConfigurationChanged");
super.onConfigurationChanged(newConfig);
}
@Override
public void onPause() {
Log.i(LOG_TAG, "Fragment.onPause");
super.onPause();
}
@Override
public void onStop() {
Log.i(LOG_TAG, "Fragment.onStop");
super.onStop();
}
@Override
public void onDetach() {
Log.i(LOG_TAG, "Fragment.onDetach");
super.onDetach();
}
@Override
public void onDestroy() {
Log.i(LOG_TAG, "Fragment.onDestroy");
super.onDestroy();
}
}
}
的http:// 7xi7e6。 com1.z0.glb.clouddn.com/activity-fragment_lifecycle_4.png檢查此 – vilpe89