AndroidStudio-3.2.1(四) 四大组件入门之Activity
本篇介绍Android四大组件之Activity基本知识和常用操作。
Android四大组件分别为activity、service、content provider、broadcast receiver。
Activity
Activity可简单理解为用户交互界面,一个app可以包含多个activity。这里介绍activity的创建、相互之间的调用及数据传递、生命周期管理。
1. 创建activity
- 新建app时会默认创建一个activity,我们这里新添加一个activity。在项目文件夹上右键选择一个EmptyActivity添加到项目中。
- 项目目录中会增加java和xml两个文件。java用来编写业务逻辑代码,xml用来编辑界面布局。同时在项目资源清单文件(AndroidManifest.xml)会自动增加一个activity的配置项,注意中的内容,有这两行的说明这是主activity,app启动后就显示这个界面。
<activity android:name=".TestActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2.activity相互调用及数据传递
activity之间的调用是通过系统内置函数startActivity和finish来实现的。如果想传递参数或数据,需要用到Intent,这是一个与基本组件相关的数据对象,用来指定启动的目标组件。具体见代码及注释:
Intent intent = new Intent(TestActivity.this, HelloActivity.class);//参数释义:(当前activity,目标activity)
intent.putExtra("msg", "activity之间传递数据");//以key-value方式传递
Bundle bd = new Bundle();//可以存储复杂类型数据
bd.putString("msg", "使用bundle传递复杂数据");
startActivity(intent);//启动另一个activity
另一个activity里接收数据:
String msg = getIntent().getStringExtra("msg");//接收简单数据
Bundle bd = getIntent().getExtras();//接收复杂数据
String msg2 = bd.getString("msg");
启动另一个activity后,也可以返回数据给当前activity,需要用startActivityForResult方法启动,并使用onActivityResult来接收返回数据。
3.生命周期管理
一个Activity有3种状态:运行、暂停和停止.在android中共有7个函数在不同状态之间切换,具体可参考上图.我们也可以在as里重写这7个方法,来观察不同的操作(例如启动app、退回桌面、从最近应用中启动等)引起的状态变换.代码如下:
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
}