重识onSaveInstanceState方法的调用时机

概述

在Android的Activity中,我们使用onSaveInstanceState(Bundle outState)方法来保存当前界面的UI数据,防止在内存不够时,该Activity被系统销毁,用户重新回到该界面时界面没有数据,造成不好的用户体验。我们可以在onCreate(Bundle)或者onRestoreInstanceState(Bundle)中去恢复UI数据。

那么问题来了,onSaveInstanceState(Bundle outState)这个方法是在什么时候被调用?我们大部分人的第一印象是在内存不足,Activity被销毁前调用;第二印象是在手机转屏的时候调用。

ThreadLocal 解析

概述

ThreadLocal 是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。(可以将ThreadLocal<T> 视为 Map<Thread, T>,但 ThreadLocal 的实现并非如此。)

SharedPreferences解析

概述

SharedPreferences(简称SP)是Android中常用的数据存储方式,SP采用key-value(键值对)形式,主要用于轻量级的数据存储,尤其适合保存应用的配置参数,但不建议使用SP来存储大规模的数据,可能会降低性能。

AsyncTask解析

概述

AsyncTask是一个抽象类,它是Android封装的一个轻量级异步操作的类。它可以在线程池中执行后台任务,然后把执行的进度和最终的结果传递到主线程,并在主线程中更新UI。

IntentService解析

概述

Android中的Service是运行在主线程(UI线程),如果要处理耗时任务,需要手动创建工作线程,不然会有ANR的风险。IntentService继承于Service,内部使用工作线程来处理请求的任务。

,