Activity组件

佐手、 提交于 2020-03-05 13:34:18
  1. ActivityAndroid四大组件之一;
  2. 用于绘制用户界面并响应用户操作;
  3. 一个程序会包含多个Activity,有一个Activity会被声明为主Activity,用户进入应用是第一个显示的就是主Activity
  4. Activity之间可以相互跳转;

Activity的定义

  1. 定义一个类继承自Activity,并实现基类的若干方法;
  2. onCreate()方法中调用setContentView(View view)方法设置布局文件;
  3. AndroidManifest.xml文件中对Activity进行配置,否则系统找不到定义的Activity

Activity跳转

不同的Activity之间可以相互跳转,跳转有两种方式:

  • 在一个Actvity中调用startActivity(Intent intent)

    // 启动一个Activity
    startActivity(Intent intent);
    
  • startActivityForResult(Intent intent, int requestCode)方法跳转到另外一个Activity.

    // 该方法不仅可以启动其他Athity,还可以接收其他Actvity的返回结果,requestCode标识请求的来源。
    startActivityForResult(Intent intent, int requestCode);
    

Activity生命周期

Android应用在系统中运行时,每个Activity都有它的生命周期。Activity从创建到销毁, 可以分为如下三种状态:

  • 活动状态:当前Activity处于前台,可以获得焦点,可以被用户可见并响应用户的操作
  • 暂停状态:当前Activity依然被用户可见,但是不能获得焦点,其他Activity处于前台。 一个处于暂停状态的Activity仍然处于内存中,但是在系统内存较低的时候可能会被回收掉。
  • 停止状态:当前Activity不再可见,完全处于后台。当其他地方有内存需要时,该Activity会被回收。

Activity生命周期回调方法:Activity的每一种状态都会有对应的回调方法。

ara

Activity的启动模式

  • standard模式:

    默认的启动模式,如果在当前Activity中打开一个新的Activity,则系统默认的启动模式,如果在当前Activity中打开一个新的Activity, 则系统会保存之前的Activity的状态, 将新打开的Activity压入堆栈的顶部,并且获取焦点。当用户点击“返回”键之后,当前Activity会从堆栈顶部移除,之前的Activity恢复状态并正常运行。

  • singleTop模式

    系统启动一个Activity,会判断当前待启动的Activity和栈顶的Activity是否一致,如果是同一个Activity,则不新建当前Activity的对象, 而是回调栈顶Activity对象的onNewIntent()方法。

  • singleTask模式

    新启动的Activity如果在当前任务栈中已经存在,则不新建对象,直接回调栈中已存在对象的onNewIntent()方法。该启动模式和singleTop类似, 但是不要求新启动的Activity在栈顶存在, 只要在栈中即可。

  • singlelnstance模式

    每启动一个应用,系统都会为该应用建立一个任务栈。 singlelnstance 启动模式要求Activity只能单独的位于一个任务栈中,即对象在所有的任务栈范围内都只存在一份。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!