Activity生命周期
来源:互联网 发布:ecshop小京东数据字典 编辑:程序博客网 时间:2024/06/08 19:56
掌握好Activity生命周期,能够让我们在以后的开发中更为得心应手,也能够让初级开发者在面试中顺利作答。
借用一张官方的图片。
图片地址: https://developer.android.google.cn/guide/components/activities.html#Lifecycle
Activity类中定义了7个回调方法
- onCreate()
活动第一次被创建的时候调用。 - onStart()
活动由不可见变为可见的时候调用。 - onResume()
活动准备好和用户进行交互的时候调用。 - onPause()
系统准备去启动或者恢复另一个活动的时候调用。 - onStop()
活动完全不可见的时候调用。 - onDestroy()
活动被销毁之前的时候调用。 - onRestart()
活动被重新启动的时候调用。
文字描述可以让事物生动形象,但实际操作却能够让你更为清晰的理解这一过程。下面我将创建3个Activity来展示。
首先创建一个MainActivity :
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button normal, dialog; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); normal = (Button) findViewById(R.id.start_normal_activity); normal.setOnClickListener(this); dialog = (Button) findViewById(R.id.start_dialog_activity); dialog.setOnClickListener(this); Log.d(TAG, "onCreate: "); } @Override public void onClick(View view) { Intent intent = new Intent(); if (view == normal) { intent.setClass(MainActivity.this, NormalActivity.class); startActivity(intent); } if (view == dialog) { intent.setClass(MainActivity.this, DialogActivity.class); startActivity(intent); } } @Override protected void onStart() { super.onStart(); Log.d(TAG, "onStart: "); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "onResume: "); } @Override protected void onPause() { super.onPause(); Log.d(TAG, "onPause: "); } @Override protected void onStop() { super.onStop(); Log.d(TAG, "onStop: "); } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy: "); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "onRestart: "); }}
MainActivity布局代码如下:
<Button android:id="@+id/start_normal_activity" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Start NormalActivity" android:textAllCaps="false" /> <Button android:id="@+id/start_dialog_activity" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Start DialogActivity" android:textAllCaps="false" />
然后再创建NormalActivity、DialogActivity,在AndroidManifest.xml中修改DialogActivity的配置,添加如下代码:
android:theme="@android:style/Theme.Dialog"
之所以要创建NormalActivity和DialogActivity,是为了展示Activity在暂停状态的时候上一个Activity不可见和可见的情况。
现在运行项目,刚开始进入MainActivity
点击第一个按钮进入NormalActivity
点击返回键返回MainActivity
点击第二个按钮进入DialogActivity
点击返回键返回MainActivity
点击返回键退出程序
最后,文章写的有点乱,如果你没看明白,请移步
https://developer.android.google.cn/guide/components/activities.html#Lifecycle
0 0
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- 浅析SQL Server数据库中的伪列以及伪列的含义
- 如何写一个linux精灵进程
- selenium自动化测试资源整理(含所有版本chrome、chromedriver、firefox下载链接)
- Behavior Designer 入门笔记.
- java实现给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- Activity生命周期
- VS2013环境下MFC中CString与string相互转换
- mybatis逆向工程
- java实现输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- Oracle解析复杂json的方法
- PHP学习笔记——系统函数
- Hololens
- php开启mysql扩展
- wifi详解(二)