在MainActivity里面重写以下方法:
在这些方法里面打印log日志,为了方便查看在filter里面增加一个System.out来过滤
onCreate()
onDestory()
onPause()
onResume()
onStart()
onStop()
第一次打开一个activity和关闭时,这个调用顺序onCreate ==> onStart ==> onResume ==>关闭 ==> onPause ==> onStop ==> onDestroy
打开第二个activity的流程,第一个界面的状态 onCreate ==> onStart ==> onResume ==> 打开第二个activity ==> onPause ==> onStop ==> 关闭第二个 ==> onStart ==> onResume ==> 关闭第一个 ==> onPause ==> onStop ==> onDestroy
测试获取焦点和失去焦点,建立第三个Activity,修改样式,在预览界面有一个AppTheme的小控件,里面Theme有个对话框的选项,在清单文件中,给<activity/>节点添加主题属性
设置主题android:theme=[email protected]:style/Theme.Dialog” 系统R文件的样式,对话框的风格
点击按钮打开这个activity,这时第一个界面会调用 onPause 方法,失去焦点
点击空白部分,第一个界面会得到焦点,onResume 方法
生命周期两两对应,可以分为三个,完整生命周期,可视生命周期,前台生命周期,点击后退按钮会销毁activity
生命周期的使用场景,数据的持久化,比如在写微博,当用户不小心按了后退按钮,activity会调用onDestroy方法,我们就可以把数据存到文件或者sp里面
当界面从新可见的时候,会调用onStart方法,我们可以做一些界面的更新或者业务逻辑的变化
比如:当跳转了activity,要求用户配置某些东西时,用户没有配置就点了返回,这时,我们可以把检测网络的代码写到onStart()方法里面,这样用户体验不好,可以使用对话框
获取AlertDialog.Builder对象,通过new Builder(context)得到,参数:上下文
调用builder对象的setTitle()方法,设置标题
调用builder对象的setMessage()方法,设置内容
调用builder对象的setPositiveButton(text,listener)方法,设置确定按钮,参数:文字,OnClickListener接口对象,通过匿名内部类直接new出来,重写onClick()方法
调用builder对象的create()方法调用show()方法,创建并展示出来
package com.tsh.lifecye; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("onCreate"); } //提示对话框 @Override protected void onStart() { super.onStart(); System.out.println("onStart"); AlertDialog.Builder builder=new Builder(this); builder.setTitle("提示"); builder.setMessage("我是一个好人"); builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "yes是的", 0).show(); } }); builder.create().show(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); System.out.println("onResume"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); System.out.println("onPause"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); System.out.println("onStop"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); System.out.println("onDestroy"); } }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/app/5468.html