如何在Fragment中启用Parse Local数据存储区

时间:2015-04-21 11:52:37

标签: android parse-platform fragment datastore

谁能帮助我吗?我试图在片段中启用Parse Local Datastore,但它抛出一个错误:java.lang.IllegalStateException:Parse#enableLocalDatastore(Context)必须在Parse#initialize(Context, String, String)之前调用。下面是我使用的代码,它在Activity中完全正常但在Fragment中没有,我知道getActivity上下文不是null,因为第二行有效。

Parse.enableLocalDatastore(getActivity());
Parse.initialize(getActivity(), DeveloperKey.ParseAppID, DeveloperKey.ParseClientKey);

5 个答案:

答案 0 :(得分:1)

您必须将与Parse初始化相关的代码移动到Application类。使类扩展Application,将其添加到清单,然后添加到应用程序调用的onCreate()

Parse.enableLocalDatastore(getActivity());
Parse.initialize(getActivity(), DeveloperKey.ParseAppID, DeveloperKey.ParseClientKey);

答案 1 :(得分:0)

阅读您的logcat错误,您只需要交换代码。

 Parse.initialize(getActivity(), DeveloperKey.ParseAppID, DeveloperKey.ParseClientKey);
 Parse.enableLocalDatastore(getActivity());

启用解析后,您就可以为其启用本地数据库。

答案 2 :(得分:0)

我意识到使用pin()会自动保存到本地数据存储区,因此无需明确使用enableLocaldatastore()。有了这个,我可以从localdatastore查询并获得缓存的结果。

答案 3 :(得分:0)

Parse.enableLocalDatastore(getActivity());

是启用本地数据存储区的一种旧方法。

现在你必须这样做。

Parse.initialize(new Parse.Configuration.Builder(this)
                .applicationId(getResources().getString(R.string.parse_api_key))
                .clientKey(null)
                .server("YOUR_SERVER_URL/") // The trailing slash is important.
        .enableLocalDataStore().build()
        );

答案 4 :(得分:0)

尝试升级:

implementation "com.github.parse-community.Parse-SDK-Android:parse:x.xx.x" 

到较新的版本。像这样:

android ide如何帮助我:
How android ide did help me out