在应用生命周期中调用一次?

时间:2011-09-01 15:26:18

标签: android android-lifecycle

要在应用的生命周期中仅使用一次调用某种方法,而不是每次都这样 该应用程序已启动,我应该在哪里放置此类方法?

onCreate()或其他地方?

3 个答案:

答案 0 :(得分:5)

它应该在Application.onCreate()中由某个SharedPreference布尔变量保护。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs.getBoolean("firstRun", true)) {            
    once(); // <-- your function
    prefs.edit().putBoolean("firstRun", false).commit();
}

答案 1 :(得分:2)

您可以将其添加到onCreate(),如果之前尚未初始化/调用该方法,则只调用该方法。

protected void onCreate(Bundle b) {
    if(shouldCall()) { // I know if the method has been called before
        callMethodJustOnce();
    }
}

如果您只打算一次调用此方法,我会在此处查看大多数答案,建议使用Preferences。但是,如果你每次都在谈论应用程序,那么这应该在onCreate()中实现,因为这应该只在应用程序初始化和启动时调用。

答案 2 :(得分:0)

在共享首选项中创建一个变量来计算应用程序打开时间,然后如果为0,则调用方法Happy coding:D