Activity和Fragment的生命周期
来直接搞起他两的生命周期图,有图有真相: 百度百科那边切过来的,感觉两个图在一起,比较有参考意义。
有Activity和Fragment各一个,代码如下:
Activity代码如下:
public class TestFragmentActivity extends FragmentActivity implements TestFragment.OnFragmentInteractionListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_fragment);
initView();
Log.e("TestFragmentActivity ","onCreate ");
}

@Override
protected void onStart() {
super.onStart();
Log.e("TestFragmentActivity ","onStart ");

}

@Override
protected void onRestart() {
super.onRestart();
Log.e("TestFragmentActivity ","onRestart ");
}

@Override
protected void onResume() {
super.onResume();
Log.e("TestFragmentActivity ","onResume ");
}

@Override
protected void onPause() {
super.onPause();
Log.e("TestFragmentActivity ","onPause ");
}

@Override
protected void onStop() {
super.onStop();
Log.e("TestFragmentActivity ","onStop ");
}

@Override
protected void onDestroy() {
super.onDestroy();
Log.e("TestFragmentActivity ","onDestroy ");
}

private void initView() {
TestFragment testFragment = TestFragment.newInstance(null, null);

getSupportFragmentManager().beginTransaction()
.replace(R.id.content,testFragment,null).commit();

}

@Override
public void onFragmentInteraction(Uri uri) {

}
}

其XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.zhengshizhong.testnewactivity.TestFragmentActivity">


</RelativeLayout>

Fragment:
**
* A simple {@link Fragment} subclass.
* Activities that contain this fragment must implement the
* {@link TestFragment.OnFragmentInteractionListener} interface
* to handle interaction events.
* Use the {@link TestFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class TestFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;

private OnFragmentInteractionListener mListener;

public TestFragment() {
// Required empty public constructor
}

/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.m
* @return A new instance of fragment TestFragment.
*/
// TODO: Rename and change types and number of parameters
public static TestFragment newInstance(String param1, String param2) {
TestFragment fragment = new TestFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}

@Override
public void onAttach(Context context) {
super.onAttach(context);
Log.e("TestFragment ","onAttach ");
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("TestFragment ","onCreate ");
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
Log.e("TestFragment ","onCreateView ");
return inflater.inflate(R.layout.fragment_test, container, false);
}

// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.e("TestFragment ","onActivityCreated ");
}

@Override
public void onStart() {
super.onStart();
Log.e("TestFragment ","onStart ");
}

@Override
public void onResume() {
super.onResume();
Log.e("TestFragment ","onResume ");
}

@Override
public void onPause() {
super.onPause();
Log.e("TestFragment ","onPause ");
}

@Override
public void onStop() {
super.onStop();
Log.e("TestFragment ","onStop ");
}

@Override
public void onDestroyView() {
super.onDestroyView();
Log.e("TestFragment ","onDestroyView ");
}


@Override
public void onDestroy() {
super.onDestroy();
Log.e("TestFragment ","onDestroy ");
}

@Override
public void onDetach() {
super.onDetach();
mListener = null;
Log.e("TestFragment ","onDetach ");
}

/**
* This interface must be implemented by activities that contain this
* fragment to allow an interaction in this fragment to be communicated
* to the activity and potentially other fragments contained in that
* activity.
* <p/>
* See the Android Training lesson <a href=
* "http://developer.android.com/training/basics/fragments/communicating.html"
* >Communicating with Other Fragments</a> for more information.
*/
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
}

Fragment XML:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zhengshizhong.testnewactivity.TestFragment">



<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="sdfsfdsdfssfdsdfsf"/>

</FrameLayout>


对其输出了日志:
打开界面TESTFragmentActivity:
05-14 16:39:45.985 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onCreate
05-14 16:39:45.985 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onAttach
05-14 16:39:45.985 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onCreate
05-14 16:39:45.985 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onCreateView
05-14 16:39:45.985 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onActivityCreated
05-14 16:39:45.990 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onStart
05-14 16:39:45.990 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onStart
05-14 16:39:45.990 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onResume
05-14 16:39:45.990 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onResume

按back: 05-14 16:41:18.215 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onPause
05-14 16:41:18.215 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onPause
05-14 16:41:18.585 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onStop
05-14 16:41:18.585 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onStop
05-14 16:41:18.585 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onDestroyView
05-14 16:41:18.585 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onDestroy
05-14 16:41:18.585 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onDetach
05-14 16:41:18.590 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onDestroy


打开界面TESTFragmentActivity:
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onCreate
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onAttach
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onCreate
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onCreateView
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onActivityCreated
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onStart
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onStart
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onResume
05-14 16:42:02.080 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onResume

按home键: 05-14 16:42:33.580 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onPause
05-14 16:42:33.580 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onPause
05-14 16:42:34.115 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onStop
05-14 16:42:34.115 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onStop

再点开App: 05-14 16:45:03.520 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onRestart
05-14 16:45:03.520 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onStart
05-14 16:45:03.520 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onStart
05-14 16:45:03.520 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragmentActivity: onResume
05-14 16:45:03.520 9218-9218/com.example.zhengshizhong.testnewactivity E/TestFragment: onResume


哦了







更多相关文章

  1. App在自己界面奔溃回到首页,状态栏沉浸式消失bug
  2. Android原生Contacts——界面和数据库
  3. Java线程的生命周期和状态控制
  4. Android项目实战--手机卫士01--启动界面
  5. android 输入法界面显示的开关
  6. 问题记录-Activity跳转后显示空白界面
  7. DroidDraw---Android的界面设计工具
  8. Android Service的生命周期图解
  9. Android界面的.9.png图片显示出错,怎么回事啊?

随机推荐

  1. 与spinner有关的样式
  2. android短信和彩信探秘threads
  3. android音乐播放器常见操作
  4. android 获取 imei号码以及其他信息
  5. Android(安卓)程序中哪个 Activity 最先
  6. Android使用代码
  7. Android三种方法设置ImageView的图片
  8. Android EventBus3.0 索引
  9. Android监听应用程序安装和卸载
  10. android theme中的各个color的含义