Java 接收活动的Android实用程序方法
我在Android应用程序中有一个单独的Utility.class,在这个Utility.class上,我设置了一个方法来接收活动并返回我保存在SharedReferences中的内容,如下所示:Java 接收活动的Android实用程序方法,java,android,Java,Android,我在Android应用程序中有一个单独的Utility.class,在这个Utility.class上,我设置了一个方法来接收活动并返回我保存在SharedReferences中的内容,如下所示: public static long retrieveFromSharedPrefs(Activity activity) { sharedPref = activity.getPreferences(Context.MODE_PRIVATE); long startTime = s
public static long retrieveFromSharedPrefs(Activity activity) {
sharedPref = activity.getPreferences(Context.MODE_PRIVATE);
long startTime = sharedPref.getLong("StartTime", 0);
return startTime;
}
问题是,当我尝试从其他类访问此方法时,我无法将此方法发送到当前活动:
alreadyStartTime = Utilities.retrieveFromSharedPrefs(getActivity());
问题是getActivity()似乎不是一个有效的API方法,所以我不知道在那里写什么,他同意接受的唯一API方法是getParent(),它根本没有任何效果(我没有使用片段,所以它不是子活动)
我将感谢任何帮助,非常感谢!!:) 实际上,您并没有在该函数中获取活动,而是获取活动的上下文 在
非活动
类中获取上下文
的最佳实践是使用ContextWrapper
类
请检查下面的链接…你会得到一个清晰的想法,它是如何工作的
您可以在任何地方以统一的方式访问您的共享首选项:
PreferenceManager.getDefaultSharedPreferences(context)
只是传递您当前的上下文
如果希望从自己的类访问它们,可以使用应用程序上下文作为参数
如果您创建自己的应用程序派生类并将其注册到清单中,您将能够创建GetSharedReference函数,您可以在任何地方使用它
class MyApp extends Application {
private static MyApp instance;
public void onCreate() { this.instance = this; }
public static SharedPreferences prefs() { return PreferenceManager.getDefaultSharedPrefercnes(instance); }
}
但别忘了在本例中将其包含在清单中在实用程序类的构造函数中传递一个
上下文
。使用上下文
而不是活动
解决了它,谢谢!我只需要访问PreferenceManager.getDefaultSharedReferences(上下文)