Android四大组件Activity生命周期使用Activity的操作
发布日期:2021-06-30 21:21:37 浏览次数:3 分类:技术文章

本文共 2422 字,大约阅读时间需要 8 分钟。

2.Activity:出生->死亡 (经历各种各样的回调方法)

了解Activity的生命周期的根本目的就是为了设计用户体验更加良好的应用。

 

整个生命周期:你的Activity应该在onCreate()方法里执行设置“全局”状态(如定义布局)。并在onDestroy()方法里释放所有剩余资源

onCreate()-->onStart()-->onResume()-->运行在最前端-->onPause()-->onStop()-->onDestory()

可见生命周期:在这两个方法,你可以保持该Activity需要展示给用户的资源。

onPause()-->onStop()-->onRestart()-->onStart()-->onResume()

前台生命周期:一个Activity可以经常在前台状态发生转换—比如,当设备休眠或者弹出了个对话框。因为经常会发生转换,所以在这两个方法之间的代码应该是轻量级的,防止导致其他转换变慢使得用户需要等待。

onPause()-->onResume();

 

 

onCreate()-->Activity启动时调用

onStart()-->界面可见的时候被调用的

onResume()-->恢复的时候调用的(获取焦点)

运行在最前端-->

onPause()-->暂停的时候调用(就时失去焦点)

onStop()-->界面不可见的时候被调用了

onDestory()-->见面关闭时调用

 

 

横竖屏切换的生命周期

android在屏幕转动时数据会发生变化    

    在内部他会重新加载一遍

解决问题   :

步骤1

    打开AndroidManifest.xml里面配置

 

 

 

Activity任务栈

1.任务栈(task stack): 安卓对Activity界面的管理容器

            stack :后进先出

 

2. 任务栈的四种属性:standard singleTop singleTasksingleInstance

3.singleTop

    当打开属性为singleTop的Activity时,先判断是否在栈顶 如果是,则不创建,如果不是在栈顶,则再次创建。

    应用场景:手机卡屏多次点击某个按钮启动多个同样的界面。

 

 

4.singleTask

  当打开属性为singleTask的Activity时,先判断Activity是否在栈内存在,如果不存在则创建;如果存在,则要判断是否该Activity上面有其他Activity,如果有,则直接关闭其他的Activity。

应用场景:应用的主页

 

5.singleInstance

  配置了该模式的Activity第一次被创建的时候,自己创建了一个任务栈,并将任务栈提前到默认的任务栈之前;如果中间启动了其他Activity,则在默认的栈中创建其他Activity并将默认的栈提前;第二次启动该Activity,发现任务栈不是在最前,则提到最前即可,不重新创建该Activity。

 

总结:

Activity:界面(展示UI   处理与用户之间交互)

1.创建一个类继承Activity.

2.在AndroidMenifest.xml文件中<application />注册
3.启动Activity
     startActivity(Intent);  (Activity中定义的)
4.了解Intent
    1.显示启动
            Intent intent=new Intent(context,xxActivity.class);
            intent.setComponentName(new ComponentName(context,xxActivity.class));
            intent.setClass(context,xxActivity.class);
     2.隐式启动(2种)
         2.1通过action category属性
                    intent.setAction();
                    intent.addCategory();
                    AndroidMenifest----><intent-filter><action /><category /><category /></intent-filter>
          2.2通过data type属性
                    intent.setData(Uri);
                    intent.setType();
                    intent.setDataAndType();
                    AndroidMenifest----><intent-filter><action /><category /><data /></intent-filter>
         3.Uri 统一资源定位符(定位某个资源的路径)
                Uri.parse("http://dfssad");
                Uri.fromFile("fsdfssdfs");

5.Activity的生命周期
            onCreate()创建--->onStar()开始显示--->onResume()开始用户交互
            onPause()暂停(失去焦点 不能跟用户交互)--->onStop()界面不可见---->onDestory()
6.启动模式(任务栈)
            <activity launcherMode="" />
            属性:
            standard(栈的形式存储)    
            singleTop(多次点击该界面 只启动一次) 子分页  
            singleTask(当发现界面已经存在 并且界面上面还有其他界面  此时再次启动会删除上面的其他界面)  主页                          
            singleInstance(独自享有一个容器 当发现该容器已经存在 再次启动 将容器置前)

转载地址:https://liwangjiang.blog.csdn.net/article/details/79683029 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Activity任务栈 launchMode
下一篇:SharedPreferences 的用法

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月09日 05时37分22秒