Day02-Android客户端基础组件 | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的的第2天
本节课知识点大纲:
1. Android客户端基础组件
2. Activity生命周期
一、Android客户端基础组件:
-
基础组件
- Activity
- Fragment
- Service
- BroadcastReceiver
- ContentProvider
-
通信组件
- Handler
- Binder
二、Activity生命周期:
- Activity 继承关系
java.lang.Object ↳ android.content.Context ↳ android.content.ContextWrapper ↳ android.view.ContextThemeWrapper ↳ android.app.Activity
- Activity 生命周期
Activity常见的四种生命周期状态:
- Active 运行状态
- Pause 暂停状态
- Stop 停止状态
- Killed 消亡状态
Activity 生命周期代码例子:
// Activity 创建方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "----onCreate----");
setContentView(R.layout.activity_methods);
}
// Activity 在最新任务列表中打开时候会走此方法
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG, "----onRestart----");
}
// Activity 在onCreate 或者 onRestart之后执行
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "----onStart----");
}
// 正在与用户交互的界面
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "----onResume----");
}
// 被其他与用户交互的Activity 部分覆盖
@Override
protected void onPause() {
super.onPause();
Log.i(TAG, "----onPause----");
}
// 被其它与用户交互的Activity 全部覆盖
@Override
protected void onStop() {
super.onStop();
Log.i(TAG, "----onStop----");
}
// Activity 销毁时候调用此方法
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "----onDestroy----");
}
Notes :Activity是四大组件之一,Android规定四大组件必须在AndroidMainfest.xml 中注册,Activity如果不注册,则会引起 App Crash 报错。
Activity 注册例子:
<manifest ... >
<application ... >
<activity android:name=".BaseButtonMethods" />
...
</application ... >
...
</manifest >
三、Activity状态保存与恢复
如图所示:
四、课后个人总结:
- 本章较难知识点:
1.Activity 生命周期
2.Activity状态保存与恢复
五、知识点补充:
1.活动(activity)
(1)定义:Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。
2.服务(Service) service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在AndroidManifest.xml配置相关信息。
3.广播接受者(Broadcast Receive)
在Android中,广播是一种广泛运用的在应用程序之间传输信息的机制。而广播接收器是对发送出来的广播进行过滤接受并响应的一类组件。可以使用广播接收器来让应用对一个外部时间做出响应。例如,当电话呼入这个外部事件到来时,可以利用广播接收器进行处理。当下载一个程序成功完成时,仍然可以利用广播接收器进行处理。广播接收器不NotificationManager来通知用户这些事情发生了。广播接收器既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceive()进行注册。只要是注册了,当事件来临时,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast()将它们自己的Intent广播给其他应用程序。
4.内容提供者(Content Provider)
1.android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
2.只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
3.ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
4.开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
5.ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。
具体详细参考: Android四大组件(知识点整理)
六、引用参考:
- 课外补充:Android四大组件(知识点整理)
-
文章引用:Activity 使用详解
-
感谢以上作者的文章,今天的学习收获满满!!Thanks and HappyCoding!