要在应用的生命周期中仅使用一次调用某种方法,而不是每次都这样 该应用程序已启动,我应该在哪里放置此类方法?
在onCreate()
或其他地方?
答案 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