Activity概况
# 组件
【组件的特点(类比Servlet)】
- 它的类必须实现特定接口或继承特定类
- 需要在配置文件中配置全类名
- 它的对象不是
new
来创建的,而是系统自动创建 - 它的对象具有一定的生命周期,类中有对应的生命周期回调方法
【用到反射的地方】
- 配置文本中配置全类名
- 布局文件定义标签
- 显示Intent(Contex contex,Class cls)
# Activity的理解
# ActivityManager
# 使用Activity
定义
- 创建Activity,并且继承Activity的相关类(
AppCompatActivity
) - 在AndroidManifest.xml中声明
- 如果是主入口,则需声明
intent-filter
主入口即为APP启动时,点击icon进入到应用程序看到的当前的Activity
启动
- satrtActivity(Intent intent)
- 带回调启动:
startActivityForResult(Intent intent, int requestCode)
,重写onActivityResult(int resquestCode, int resultCode,Intent data)
结束
- finish()
- 带结果setResult(int requestCode, Intent intent)
声明TestActivity为主入口
<!--主入口-->
<activity android:name=".TestActivity"
android:label="test">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
如果运行的Activity 没有在 Manifest中注册,运行可能会崩溃并且爆出以下错误:
Unable to find explicit activity class {com.iqqcode.basicview/com.iqqcode.basicview.NewActivity}; have you declared this activity in your AndroidManifest.xml?
普通Activity注册:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.iqqcode.basicview">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl ="true"
android:theme="@style/Theme.02_BasicView">
<activity android:name=".TestActivity"
android:label="main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 普通Activity的添加 -->
<activity android:name=".MainActivity" />
<activity android:name=".NewActivity" />
</application>
</manifest>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
编辑 (opens new window)
上次更新: 2022/03/27, 22:58:50