本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!