Day02-Android客户端基础组件 | 青训营笔记

120 阅读4分钟

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 生命周期

截屏2022-07-24 08.45.17.png

Activity常见的四种生命周期状态:

  1. Active 运行状态
  2. Pause 暂停状态
  3. Stop 停止状态
  4. 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状态保存与恢复

如图所示:

截屏2022-07-24 08.51.50.png

四、课后个人总结:

  • 本章较难知识点:

1.Activity 生命周期

2.Activity状态保存与恢复

五、知识点补充:

1.活动(activity)

(1)定义:Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。

2.服务(Service) service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在AndroidManifest.xml配置相关信息。

截屏2022-07-24 08.58.42.png

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四大组件(知识点整理)

六、引用参考:

  • 文章引用:Activity 使用详解

  • 感谢以上作者的文章,今天的学习收获满满!!Thanks and HappyCoding!