Android面试题(11-15)

11、PendingIntent是什么?

PendingIntent是一个封装了Intent及其要启动组件(Activity、Service、BroadcastReceiver)的对象,可以在不同的应用程序之间传递,允许其他应用程序以我们的权限和上下文执行操作。

常见的用例包括在通知中启动活动或服务、在应用程序之间触发广播以及从AppWidget启动活动或服务。它通常在创建通知时使用,以便在用户单击通知时启动活动或服务。

12、AsyncTask是什么?

AsyncTask是Android中的一个类,用于在后台线程中执行异步任务,并在主线程上更新UI。

AsyncTask通常用于执行耗时的操作,如网络请求或数据库查询,并在操作完成后更新UI。它提供了一种简单的方法来在后台线程中执行这些任务,以避免阻塞主线程并提高应用程序的响应速度。

AsyncTask包含了四个方法:doInBackground、onPreExecute、onPostExecute和onProgressUpdate,开发者只需要实现其中需要的方法即可。

13、Loader是什么?

Loader是Android提供的一个用于异步加载数据的API,用于在后台线程中加载数据,并将其传递到UI线程以更新UI。

Loader通常用于在UI线程上异步加载大量数据,如从数据库或网络获取数据。与AsyncTask不同,Loader具有生命周期,并且可以自动管理内存泄漏和配置更改等问题。

Loader需要实现LoaderManager.LoaderCallbacks接口,并在Activity或Fragment中注册,以便在后台线程中加载数据并将其传递到UI线程上。

14、Handler是什么?

Handler是Android中的一个类,用于在不同线程之间传递和处理消息。它用于在主线程上更新UI,并在后台线程中执行任务。

Handler的工作方式是将消息对象发送到消息队列中,然后在消息队列中处理这些消息。可以在任何线程中创建和使用Handler,并使用sendMessage方法将消息发送到消息队列中。

Handler的一个常见用途是在后台线程中执行任务,并使用sendMessage方法将结果传递到主线程,以更新UI。

15、Looper是什么?

Looper是Android中的一个类,用于管理线程中的消息循环。它允许线程保持活动状态,以接收和处理消息。

Looper通过调用loop()方法进入一个无限循环,并等待消息队列中的消息。当有新的消息到达时,它从消息队列中获取消息,并将其发送到处理程序中进行处理。

Looper通常与Handler一起使用,以在不同的线程之间传递消息。每个线程只能有一个Looper,因此Looper通常在单独的线程中创建和管理。