我目前正在使用Parser,每次调用onCreate时都会解析它。 我的解析器使用位于我的资产文件夹中的XML文件。
我是否有可能只进行一次解析,而不是每次旋转屏幕或重新启动应用程序?
谢谢:)
答案 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
上的文档