Android 中的 Context, Activity,Appliction 有什么区别?
相同:Activity 和 Application 都是 Context 的子类。
Context 从字面上理解就是上下文的意思,在实际应用中它也确实是起到了管理上下文环境中各个参
数和变量的总用,方便我们可以简单的访问到各种资源。
不同:维护的生命周期不同。 Context 维护的是当前的 Activity 的生命周期,Application 维护
的是整个项目的生命周期。
使用 context 的时候,小心内存泄露,防止内存泄露,注意一下几个方面:
- 不要让生命周期长的对象引用 activity context,即保证引用 activity 的对象要与 activity 本身
生命周期是一样的。 - 对于生命周期长的对象,可以使用 application,context。
- 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致
的生命周期变化。
两个 Activity 之间传递数据,除了 intent,广播接收者,content
provider 还有啥?
1)利用 static 静态数据,public static 成员变量
2)利用外部存储的传输,
例如 File 文件存储
SharedPreferences 首选项
Sqlite 数据库
Context 是什么?
1、它描述的是一个应用程序环境的信息,即上下文。
2、该类是一个抽象(abstract class)类,Android 提供了该抽象类的具体实现类(ContextIml)。
3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个 Activity,
发送广播,接受 Intent,信息,等。
仅做个人知识总结记录