仅在第一次启动时解析XML一次

时间:2011-07-29 14:05:56

标签: android parsing

我目前正在使用Parser,每次调用onCreate时都会解析它。 我的解析器使用位于我的资产文件夹中的XML文件。

我是否有可能只进行一次解析,而不是每次旋转屏幕或重新启动应用程序?

谢谢:)

4 个答案:

答案 0 :(得分:2)

这个问题有2个答案。首先是简单的:

如果您只希望这发生一次,请在主活动中创建一个静态布尔值,并在解析XML时将其设置为true。然后使用:

if(!isParsed)
    XML.parse();

这个问题的更完整答案是确保您正确处理配置更改。

我建议您阅读this article有关如何实施配置更改处理的信息。你应该能够通过实现这个问题来解决这个问题“Android方式”。

希望这有帮助!

答案 1 :(得分:1)

您可以添加偏好设置。像 -

这样的东西
void setIsAppOpened() {
    editor.putBoolean(APP_OPENED, true);
    editor.commit();
}

在onCreate()中设置它。然后,还添加以下代码以检查首选项是否存在。

if (!prefs.contains(APP_OPENED))
    {
        //parse the XML
        setIsAppOpened();
    }

答案 2 :(得分:1)

第一次完成解析时使用Preferences系统保留一个标志,并在每次再次解析之前每次检查一次。在OnCreate()方法中完成所有这些。

    SharedPreferences settings = getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
    if (!settings.getBoolean("parsed", false)) {
        parseTheXML();

        SharedPreferences.Editor editor = settings.edit();
        editor.putBoolean("parsed",  true);
        editor.commit();
    }

还有其他方法,但这有利于跨应用程序重新加载/手机电源循环 - 假设这是你想要的。

答案 3 :(得分:0)

您可以在“Application”对象中解析XML,并从那里访问它。查看http://developer.android.com/reference/android/app/Application.html

上的文档