gpt4 book ai didi

java - 如果由于解析异常而被后退按钮破坏,Android 应用程序会崩溃

转载 作者:行者123 更新时间:2023-12-02 04:26:25 24 4
gpt4 key购买 nike

在我的 onCreate() 方法中,我按照其文档中的建议初始化 Parse 库:

// Init Parse and enable Local Datastore.
ParseObject.registerSubclass(AlertObject.class);
Parse.enableLocalDatastore(this);
Parse.initialize(this, getString(R.string.parse_app_id),
getString(R.string.parse_client_key));

但是,如果我按后退按钮(因此应用程序被停止并销毁),然后通过从上次使用的应用程序菜单中单击它来恢复应用程序,它会崩溃并抛出以下异常:

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.app.pro/my.app.MainActivity}: java.lang.IllegalStateException: `Parse#enableLocalDatastore(Context)` must be invoked before `Parse#initialize(Context)`
[...]

本质上,它建议在 initialize() 之前调用 enableLocalDatastore(),就像我实际上所做的那样。

当然,如果我重写 onBackPressed() 方法,如下所示:

@Override
public void onBackPressed() {
moveTaskToBack(true);
}

问题已解决,因为应用程序没有被破坏。但是,为什么我会在默认行为中遇到该异常?

最佳答案

尝试将 Parse 初始化移至 onCreate您的应用程序类的方法。如果您没有它,您可以创建一个从 Application 扩展的类,例如:

public class AppAplication extends Application {
@Override
public void onCreate() {
super.onCreate();

ParseObject.registerSubclass(AlertObject.class);
Parse.enableLocalDatastore(this);
Parse.initialize(this, getString(R.string.parse_app_id), getString(R.string.parse_client_key));
}
}

并写在AndroidManifest.xml中您正在使用自己的应用程序对象的文件添加 android:name属性为<application>标签。示例:

<application
android:name=".AppApplication"
>

关于java - 如果由于解析异常而被后退按钮破坏,Android 应用程序会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32090036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com