Android之Activity的生命周期和Activity间的跳转和数据传递
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:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:id="@+id/textView01"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="输入字符串:"/>
- <EditText
- android:id="@+id/et_string"
- android:layout_width="203px"
- android:layout_height="47px"
- android:textSize="18sp"/>
- </LinearLayout>
- <Button
- android:id="@+id/bt_toActivity2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="计算字符串长度"/>
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:id="@+id/textView02"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="字符串长度为: "/>
- <TextView
- android:id="@+id/tv_result"
- android:layout_width="202px"
- android:layout_height="wrap_content"
- android:textSize="18sp"/>
- </LinearLayout>
- <Button
- android:id="@+id/bt_url"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="打开百度网站"/>
- </LinearLayout>
|
评论暂时关闭