【问题标题】:What disadvantages of using Application's context instead of Activity's for getting strings? [duplicate]使用应用程序上下文而不是活动来获取字符串有什么缺点? [复制]
【发布时间】:2016-12-20 03:57:30
【问题描述】:

我需要从 Context 对象不可用的某个地方的资源中获取字符串。我可以将上下文对象作为参数传递并从资源中获取字符串,如下所示:

context.getString(R.string.some_string);

但我也可以像这样使用我的Application (extends Application) 实例:

MyApplication.getInstance().getResources().getString(R.string.some_string)

第二种方法有什么缺点吗?

【问题讨论】:

    标签: android android-resources android-context


    【解决方案1】:

    当您想对所有活动进行全局设置或在用户退出您的应用程序之前保持某些内容时,您应该使用ApplicationContext

    Activity context 保留对象,只要 activityalive 并且内存将被释放 ondestroy 活动调用但如果您使用了应用程序上下文,那么对象将保留在内存中,只要您应用程序处于活动状态,这可能会导致memory leak

    在您的情况下,最好尽可能为该活动的本地对象使用活动上下文,特别是当某些内容与活动的 GUI 组件相关时。

    阅读post了解更多详情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多