Android学习笔记-Activity

  1. Activity的创建和配置

  • 要创建 Activity 可以继承Activity类或者现有的子类,并且实现Acivity在其生命周期的各种状态之间转变时(例如创建 Activity、停止 Activity、恢复 Activity 或销毁 Activity 时)系统调用的回调方法,必须实现onCreate()方法,必须在此方法内调用 setContentView()来为Activity指定一个布局,比如setContentView(R.layout.my_activity);

  • 在配置Activity的时候一定要记得在AndroidManifest.xml中进行注册和配置,比如


  
      
      ...
  
  ...


在Activity元素中,可以设置标签,图标,风格主题等,但是android:name标签是必须要指定一个类名,其中的. 表示该类在当前程序所在的包下,如果该类不在当前包下,则需要用完成的包名+类名

  • Android开发者官网关于Activity标签的介绍(此处 上网姿势要对)

以下标签后的注释仅供您参考下,毕竟英语水平有限,还有就是我还是个新手,对于以下标签的理解还不是很透彻,可能会误导大家,所以具体的使用方法请参照官网相关API指南

   
    . . .


2.Activity的启动和关闭

Activity两种启动方式

  • startActivity(Intent intent)启动其他Activity
  • startActivityForResult(Intent intent ,int requestCode) Activity 将通过回调onActivityResult()方法得到新启动Activity的结果,requestCode参数代表启动Activity的请求码

Activity 结束方式

  • finish()结束当前Activity
  • finishActivity(int requestCode) 结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity

3.Activity的生命周期

在Activity的生命周期中主要有以下几个方法

  • onCreate(Bundle savedStatus)创建Activity时调用
  • onStart()启动Activity时调用
  • onResume()恢复Activity时调用
  • onPause()暂停Activity时调用
  • onStop()停止Activity时调用
  • onDestroy()销毁Activity时调用
  • onRestart()在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了

Resumed:已恢复状态,此时Activity位于前台,并且获得用户焦点
pasued : 暂停状态, 其他Activity获得用户焦点,但该Activity仍然可见,仍存在与内存中
Stoped : 停止状态,该Activity完全被其他Activity覆盖,仍存在于内存中,可随时被系统杀死

Android学习笔记-Activity_第1张图片
activity_lifecycle

整个生命周期: 从onCreate()开始到onDestroy()结束
可见生命周期: 从onStart()onStop() 可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互,在这两个方法之间,需要保持显示给用户的UI数据和资源等.
前台生命周期: 从onResume()onPase() 该Activity处于所有Activity的最前面,和用户交互.

4.Activity的启动模式

android:launchMode=["multiple" | "singleTop" |
                  "singleTask" | "singleInstance"]//Activity的四种启动模式,默认为standard
  • standard: 在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处栈顶的位置。对于使用standard模式的活动,系统不会在乎这个活动是否已经在返回栈中存在每次启动都会创建新的实例,Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实例。
  • singleTop :该模式下在启动活动时如果发现返回栈的栈顶已经是该活动时,则认为可以直接使用它,不会再创建新的活动实例,如果不在栈顶则会创建新的实例。Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实例(但前提是位于返回栈顶部的 Activity 并不是 Activity 的现有实例)
  • singleTask :每次启动该活动时系统首先在返回栈中检测是否存在该活动的实例,如果已经存在则会直接使用该实例,并把在这个活动之上的所有活动统统出栈,在如果没有则会创建一个新的活动实例
  • singleInstance :会启用一个新的返回栈来管理这个活动

你可能感兴趣的:(Android学习笔记-Activity)