5

我需要调用一个方法(或启动一个活动,或其他东西)来更新一个包含应用程序所需数据的文件。

但我希望它只在第一次安装应用程序时执行一次;因为之后我将自己处理文件的更新。

请问怎么做?

感谢您的任何建议

4

4 回答 4

5

在应用程序中只做一次你需要这样的东西:

boolean mboolean = false;

SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0);
mboolean = settings.getBoolean("FIRST_RUN", false);
if (!mboolean) {
 // do the thing for the first time 
  settings = getSharedPreferences("PREFS_NAME", 0);
                    SharedPreferences.Editor editor = settings.edit();
                    editor.putBoolean("FIRST_RUN", true);
                    editor.commit();                    
} else {
 // other time your app loads
}
于 2013-02-28T12:01:44.877 回答
3

您可以使用SharedPrefrences. 看看这个:

SharedPreferences ratePrefs = getSharedPreferences("First Update", 0);
        if (!ratePrefs.getBoolean("FrstTime", false)) {

        // Do update you want here

        Editor edit = ratePrefs.edit();
        edit.putBoolean("FrstTime", true);
        edit.commit();
        }
于 2013-02-28T11:55:16.180 回答
1

创建一个在您的应用启动时加载的启动器活动。让它检查 SharedPreferences ( http://developer.android.com/guide/topics/data/data-storage.html#pref )中的值(例如 firstStartUp )。第一次运行应用程序时,该值将不存在,您可以更新数据。更新数据后,在共享首选项中设置值,以便您的应用在下次启动时找到它,并且不会再次尝试更新数据。

于 2013-02-28T11:54:29.473 回答
1

您可以通过在您的主要活动 onCreate 方法中检查您的共享偏好文件中是否有您选择的任意布尔值来完成此操作。在您第一次启动时,这将不存在,因此您可以调用您的方法并将您的布尔值设置为 true。这意味着在您的应用程序的下一次启动时,此值将为 true,并且可以跳过对您的函数的调用。

于 2013-02-28T11:55:37.717 回答