[android] activity的生命周期

[android] activity的生命周期,第1张

概述在MainActivity里面重写以下方法: 在这些方法里面打印log日志,为了方便查看在filter里面增加一个System.out来过滤 onCreate() onDestory() onPaus

MainActivity@H_403_3@里面重写以下方法:

在这些方法里面打印log@H_403_3@日志,为了方便查看在filter@H_403_3@里面增加一个System.out@H_403_3@来过滤

onCreate()

 

onDestory()

 

onPause()

 

onResume()

 

onStart()

 

onStop()

 

第一次打开一个activity@H_403_3@和关闭时,这个调用顺序onCreate ==> onStart  ==> onResume ==>@H_403_3@关闭  ==> onPause  ==> onStop ==> onDestroy

 

 

打开第二个activity@H_403_3@的流程,第一个界面的状态  onCreate  ==>  onStart  ==>  onResume  ==> @H_403_3@打开第二个activity  ==>  onPause  ==>  onStop  ==>  @H_403_3@关闭第二个  ==>  onStart  ==>  onResume  ==> @H_403_3@关闭第一个  ==>  onPause  ==>  onStop  ==>  onDestroy

 

测试获取焦点和失去焦点,建立第三个Activity@H_403_3@,修改样式,在预览界面有一个Apptheme@H_403_3@的小控件,里面theme@H_403_3@有个对话框的选项,在清单文件中,给<activity/>@H_403_3@节点添加主题属性

设置主题androID:theme=”@androID:style/theme.Dialog” 系统R@H_403_3@文件的样式,对话框的风格

点击按钮打开这个activity@H_403_3@,这时第一个界面会调用 onPause @H_403_3@方法,失去焦点

点击空白部分,第一个界面会得到焦点,onResume @H_403_3@方法

 

生命周期两两对应,可以分为三个,完整生命周期,可视生命周期,前台生命周期,点击后退按钮会销毁activity

 

生命周期的使用场景,数据的持久化,比如在写微博,当用户不小心按了后退按钮,activity@H_403_3@会调用onDestroy@H_403_3@方法,我们就可以把数据存到文件或者sp@H_403_3@里面

当界面从新可见的时候,会调用onStart@H_403_3@方法,我们可以做一些界面的更新或者业务逻辑的变化

 

比如:当跳转了activity@H_403_3@,要求用户配置某些东西时,用户没有配置就点了返回,这时,我们可以把检测网络的代码写到onStart()@H_403_3@方法里面,这样用户体验不好,可以使用对话框

获取AlertDialog.Builder@H_403_3@对象,通过new Builder(context)@H_403_3@得到,参数:上下文

调用builder@H_403_3@对象的setTitle()@H_403_3@方法,设置标题

调用builder@H_403_3@对象的setMessage()@H_403_3@方法,设置内容

调用builder@H_403_3@对象的setPositivebutton(text,Listener)@H_403_3@方法,设置确定按钮,参数:文字,OnClickListener@H_403_3@接口对象,通过匿名内部类直接new@H_403_3@出来,重写onClick()@H_403_3@方法

调用builder@H_403_3@对象的create()@H_403_3@方法调用show()@H_403_3@方法,创建并展示出来

 

package com.tsh.lifecye;import androID.app.Activity; androID.app.AlertDialog; androID.app.AlertDialog.Builder; androID.content.DialogInterface; androID.content.DialogInterface.OnClickListener; androID.os.Bundle; androID.vIEw.Menu; androID.vIEw.MenuItem; 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     onStart() {        .onStart();        System.out.println("onStart");        AlertDialog.Builder builder=new Builder(this);        builder.setTitle("提示");        builder.setMessage("我是一个好人");        builder.setPositivebutton("确定",new OnClickListener() {                        @OverrIDe            voID onClick(DialogInterface dialog,1)">int which) {                Toast.makeText(MainActivity.this,"yes是的",0).show();            }        });        builder.create().show();    }    @OverrIDe     onResume() {         Todo auto-generated method stub        .onResume();        System.out.println("onResume");    }    @OverrIDe     onPause() {        .onPause();        System.out.println("onPause" onStop() {        .onStop();        System.out.println("onStop" onDestroy() {        .onDestroy();        System.out.println("onDestroy");    }}

 

总结

以上是内存溢出为你收集整理的[android] activity的生命周期全部内容,希望文章能够帮你解决[android] activity的生命周期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存