在整个活动中获取Context的最佳方法是什么?

时间:2015-05-30 22:34:26

标签: java android android-context

我在一个Activity中多次保存到SharedPreferences。每次我进行读写操作时,都会通过Context。以下是我正在考虑的两个选项 - 哪一个更好(或者有更好的方式)

  1. 每次我需要将上下文传递给另一个类中的函数(对于写入我的SharedPreferences的类),我传递的是getActivity().getApplicationContext()
  2. 我应该只在活动的onCreate()中保存一次变量(即Context ctxt = getActivity().getApplicationContext()),然后在需要传递上下文时在整个活动中使用变量ctxt
  3. 哪种方式在技术上更好?关键是 - 我每次都应该访问getApplicationContext()。我猜这很慢(并且不必要)也可能导致崩溃(我一直看到我的用户的一些日志,我无法重现,但堆栈跟踪始终指向包含getApplicationContext()的行

2 个答案:

答案 0 :(得分:1)

活动本身可以用作上下文。只需通过this即可。您可以在内部类中传递ActivityName.this

getApplicationContext()返回“当前进程的单个全局Application对象的上下文。”

答案 1 :(得分:0)

检查这个post你想要的是什么,你只需使用Activity作为Context即可随时调用getApplicationContext(),只是你可能需要找到替代方案,并使用getBaseContext()或活动本身