Android的Activity(活动)

Activity基本操作

Activity(活动)是一种展示型组件,它主要用于实现应用功能逻辑,并通过界面显示数据或接受用户输入。

  • 一个程序可以包含零个或多个活动。没有活动的应用程序,用户将无法看到程序界面,这种应用程序通常在后台运行,不涉及用户交互。

为活动绑定自定义视图

setContentView(R.layout.activity_main);

启动另一个活动

startActivity(intent);

结束活动

finish();

Activity生命周期

Activity的生命周期指Activity从创建到被销毁的整个过程。在一个生命周期内,Activity可能存在多种状态。深入了解Activity的生命周期,有助于更合理管理应用程序资源,设计出效率更高的应用。

启动状态

当Activity启动后便会进入下一状态。

运行状态

Activity处于屏幕最前端,可与用户进行交互。

暂停状态

Activity仍然可见,但是无法获取焦点,用户对它操作没有响应。

停止状态

Activity完全不可见,系统内存不足时会销毁该Activity。

销毁状态

Activity将会被清理出内存。

Activity生命周期包括创建、可见、获取焦点、失去焦点、不可见、重新可见、销毁等环节,每个环节Activity都定义了相关的回调方法,具体如下:

  • onCreate():Activity创建时调用,通常做一些初始化设置
  • onStart():Activity即将可见时调用
  • onResume():Activity获取焦点时调用
  • onPause():当前Activity被其他Activity覆盖或屏幕锁屏时调用
  • onStop():Activity对用户不可见时调用
  • onDestory():Activity销毁时调用
  • onRestart():Activity从停止状态到再次启动时调用
    在这里插入图片描述

Activity数据传递

主要有使用putExtra()传递数据,使用Bundle对象传递数据、获取活动返回的数据

使用putExtra()传递数据

putExtra(name,value)方法可将指定的数据封装到Intent对象中。其中,name为表示数据名称的字符串,value为要传递的各种数据类型的值。
要获取Intent对象中封装的数据,可调用各种getXXXExtra()方法:

  • getCharExtra(String name,char defaultValue):获取指定name的char类型数据
  • getFloatExtra(String name,float defaultValue):获取指定name的float类型数据
  • getFloatArrayExtra(String name):获取指定name的float类型数据
  • getIntArrayExtra(String name):获取指定name的int类型数据
  • getIntExtra(String name,int defaultValue):获取指定name的int类型数据
  • getStringArrayExtra(String name):获取指定name的String类型数据
  • getStringExtra(String name):获取指定name的String类型数据
  • getSerializableExtra(String name):获取指定name对象数据

使用Bundle对象传递数据

  1. 将各种数据封装到一个Bundle对象中,再将Bundle对象封装到Intent对象中传递给启动的活动。
  2. Bundle对象的各种putXXX(String key,XXX value)方法,可将XXX类型的数据封装到其中,对应的用getXXX(String key)方法中获取数据。
  3. Bundle对象准备好之后,调用putExtras(bundle)或putExtra(name,bundle)方法将其封装到Intent中。
  4. 要从Intent对象中获取Bundle对象是,调用的getExtras()或getBundleExtra()方法即可。

获取活动返回的数据

startActivityForResult(intent,requestCode)方法来启动活动,请求返回结果:

  • 参数intent是一个Intent对象,用于封装需要传递给活动的数据;
  • 参数requestCode为请求码,是一个整数,用来标识当前请求;一个活动可能会接收到其他不同活动的请求,从活动返回时,他会原样返回接收到的请求码;
  • 在处理返回结果时,可通过请求码判断是不是从所请求的活动的活动返回。
    在第二个Activity中,用setResult(resultCode,intent)方法设置返回结果,resultCode为结果代码,intent为封装了返回数据的Intent对象。

在第一个Activity中需重写onActivityResult(int requestCode,int resultCode,Intent data)方法来处理返回结果:

  • requestCode为从所请求的活动返回它所接受的请求码;
  • resultCode为结果代码,常量RESULT_CANCELED表示用户取消了操作,RESULT_OK表示用户正确完成了操作;
  • data为请求活动返回的Intent对象,从中可获取返回数据。
发布了11 篇原创文章 · 获赞 43 · 访问量 8470
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章