253 字
1 分钟
ApplicationContext和ActivityContext的区别

ApplicationContext和ActivityContext的区别#

这是两种不同的context,也是最常见的两种.

  • 第一种中context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,伴随application的一生,与activity的生命周期无关.

  • 第二种中的context跟Activity的生命周期是相关的,但是对一个Application来说,Activity可以销毁几次,那么属于Activity的context就会销毁多次.

至于用哪种context,得看应用场景。还有就是,在使用context的时候,小心内存泄露,防止内存泄露,注意一下几个方面:

  • 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的。
  • 对于生命周期长的对象,可以使用application context。
  • 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化。
ApplicationContext和ActivityContext的区别
作者
强人自传
发布于
2020-04-24
许可协议
CC BY-NC-SA 4.0