Android中的onCreate和Initialization

时间:2012-03-22 04:58:59

标签: android

我的应用程序应该在第一次启动时加载一些数据,但是当它恢复时它不应该再加载,当我在onCreate方法上加载时,如果用户改变方向,那个过程再次执行,我不想要这个,我只需要运行一次加载,有没有办法解决它?

3 个答案:

答案 0 :(得分:2)

只需在加载数据时设置一些标志,并仅在未设置标志时加载数据。例如:

SharedPreferences preferences = getPreferences(MODE_PRIVATE);  

if (! preferences.getBoolean("dataLoaded")) {
    loadData();

    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean("dataLoaded", true);
    editor.commit();
}

这将确保每个 install 仅加载一次数据。如果要为每个应用程序 instance / run 加载一次数据,那么解决方案就更简单了。在这种情况下,您可以在某处使用public static标记,而不是使用SharedPreferences

答案 1 :(得分:0)

真的很简单!只是说:

android:configChanges="keyboardHidden|orientation"

在您需要此类功能的AndroidManifest.xml文件内部活动代码中。

示例:

<activity
    android:name=".MyActivity"
    android:configChanges="keyboardHidden|orientation"
    android:label="Test"
    android:windowSoftInputMode="stateHidden" >
</activity>

答案 2 :(得分:0)

在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性(android:configChanges)的配置将阻止活动重新启动。在您的情况下,此属性的值为 android:configChanges="orientation"