美文网首页
安卓四大组件之Activity

安卓四大组件之Activity

作者: 咸鱼飞起来啦 | 来源:发表于2020-10-19 10:44 被阅读0次

    一、Activity简介

    安卓四大组件之一,Activity是Context的子类,同时实现了window.callback和
    
    keyevent.callback所以可以与用户进行事件交互。
    
    常见的activity子类:FragmentActivity, ListActivity, TabActivity等
    

    二、Activity生命周期

    image

    (1)onCreate()

    这个方法会经常见到,因为每个活动中都会重写这个方法,它会在活动第一次被创建的时候调用,应该在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。

    (2)onStart()
    这个方法在活动由不可见变为可见时调用。

    (3)onResume()

         这个方法在活动准备好和用户进行交互的时候调用,此时的活动一定位于返回栈的栈顶,并且处于运行状态。
    

    (4)onPause()

         这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗 CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。
    

    (5)onStop()

         这个方法在活动完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop()方法并不会执行。
    

    (6)onDestroy()

         这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
    

    (7)onRestart()

         这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
    

    三、Activity的状态有哪些

    • 前台Activity

    • 可见Activity

    • 后台Activity

    • 空进程

    对应进程的状态:

    • 前台进程

    • 可见进程

    • 服务进程

    • 后台进程

    • 空进程

    四、如何保存Activity的状态

    onSaveInstanceState(Bundle); 将数据存到bundle对象中
    
    onCreate(Bundle); 将数据取出来
    

    五、两个Activity间跳转会调用哪些方法

    如果activity不是透明的:onPause(); onStop();
    
    如果activity是透明的:onPause();
    

    六、横竖屏切换时Activity会调用哪些方法

    AndroidManifest.xml文件配置
    
    android:configChanges="orientation|keyboardHidden|screenSize", 切屏时只会调用
    
    onConfigurationChanged方法,否则会重新调用一边生命周期方法
    

    七、将Activity设置成窗口模式

    android:theme="@android/Theme.Dialog"
    

    八、Activity的任务栈

    1. standard(标准模式):栈结构,先进先出

    2. singleTop(单一栈顶):栈顶存在的activity不会被创建,调用onNewIntent();

    3. singleTask(单一任务):栈中存在的activity不会被创建,调用onNewIntent();并移除其顶部的所有其他activity

    4. singleInstance(单例):一个栈只有一个activity

    相关文章

      网友评论

          本文标题:安卓四大组件之Activity

          本文链接:https://www.haomeiwen.com/subject/vkznpktx.html