Android之Activity的生命周期和Activity间的跳转和数据传递


Activity,是Android中一个重要的组件。就像任务管理进程,每个Activity负责一个任务,一般都是一个页面对应一个Activity,Activity负责响应当前页面的所有请求和处理。而Activity的生命周期,也和进程很类似,它有创建(OnCreate)、开始(onStart)、暂停(onPause)、唤醒(onResume)、停止(onStop)、重启(onRestart)、销毁(onDestroy)等状态。下面一幅图,清楚地描述了这些状态的转变:

        

           Activity启动的流程包括:onCreate()->onStart()->onResume()

           Activity关闭的流程包括:onPause()->onStop()->onDestroy()。

           Activity重启的流程包括:onPause()->onResume()或者onStop()->onRestart()

           下面再通过实例来讲述Activity的生命周期:

           (1)启动Activity1

          

           (2)从Activity1中启动Activity2(注意Activity1这里并没有调用finish()方法)

           

           (3)从Activity2中返回Activity1(注意Activity2这里调用了finish()方法,会引发onDestroy()方法)

           

           (4)退出Activity1,程序结束

          

           可以看出Activity1经历的生命周期为:onCreate()->onStart()->onResume()->onPause()->onStop()->onRestart()->onResume()->onPause()->onStop()->onDestroy()

           Activity2经历的生命周期为:onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()

           实例视图与具体代码如下:

               

                 

           1、布局文件

           Activity1的布局文件main.xml:          

 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.  <LinearLayout    
  8.     android:orientation="horizontal"  
  9.     android:layout_width="fill_parent"  
  10.     android:layout_height="wrap_content"  
  11.     >  
  12.     <TextView  
  13.         android:id="@+id/textView01"  
  14.         android:layout_width="wrap_content"  
  15.         android:layout_height="wrap_content"  
  16.         android:text="输入字符串:"/>  
  17.     <EditText  
  18.         android:id="@+id/et_string"  
  19.         android:layout_width="203px"  
  20.         android:layout_height="47px"  
  21.         android:textSize="18sp"/>       
  22. </LinearLayout>  
  23. <Button  
  24.     android:id="@+id/bt_toActivity2"  
  25.     android:layout_width="fill_parent"  
  26.     android:layout_height="wrap_content"  
  27.     android:text="计算字符串长度"/>  
  28.  <LinearLayout    
  29.     android:orientation="horizontal"  
  30.     android:layout_width="fill_parent"  
  31.     android:layout_height="wrap_content"  
  32.     >  
  33.    <TextView  
  34.         android:id="@+id/textView02"  
  35.         android:layout_width="wrap_content"  
  36.         android:layout_height="wrap_content"  
  37.         android:text="字符串长度为: "/>  
  38.     <TextView  
  39.     android:id="@+id/tv_result"  
  40.     android:layout_width="202px"  
  41.     android:layout_height="wrap_content"  
  42.     android:textSize="18sp"/>     
  43. </LinearLayout>  
  44. <Button  
  45.     android:id="@+id/bt_url"  
  46.     android:layout_width="fill_parent"  
  47.     android:layout_height="wrap_content"  
  48.     android:text="打开百度网站"/>  
  49.   
  50.   
  51. </LinearLayout>  
  • 1
  • 2
  • 3
  • 下一页

相关内容