Java 在整个活动中获取上下文的最佳方式是什么?
我多次保存到单个活动中的SharedReferences。每次读或写时,我都会传递Java 在整个活动中获取上下文的最佳方式是什么?,java,android,android-context,Java,Android,Android Context,我多次保存到单个活动中的SharedReferences。每次读或写时,我都会传递上下文。以下是我正在考虑的两个选择——哪一个更好(或者有更好的方法) 每次我需要将上下文传递给另一个类中的函数时(例如,一个类写入我的SharedReferences),我都会传递thisgetActivity().getApplicationContext() 我是否应该只在活动的onCreate()中保存一次变量(即Context ctxt=getActivity().getApplicationContext
上下文
。以下是我正在考虑的两个选择——哪一个更好(或者有更好的方法)
getActivity().getApplicationContext()
onCreate()
中保存一次变量(即Context ctxt=getActivity().getApplicationContext()
),然后在需要传递上下文时在整个活动中使用变量ctxt
哪种方法技术上更好?关键是-我应该每次访问
getApplicationContext()
。我猜这很慢(&不必要),也可能会导致崩溃(我看到一些用户的日志,我无法重现,但堆栈跟踪总是指向包含getApplicationContext()
)的行)活动本身可以用作上下文。只需传递此
。您可以在内部类中传递ActivityName
getApplicationContext()
返回“当前进程的单个全局应用程序对象的上下文。”检查这是您想要的,您只需使用活动作为context
,并且在任何时候调用getApplicationContext()
都没有问题,您可能只需要找到替代方法,并可能使用getBaseContext()
或活动本身getApplicationContext()不太可能导致崩溃,但getActivity()可能返回null。我假设你正在从片段中保存首选项。别忘了上传任何有助于你的帖子:)只是说先生