第一次启动应用程序时,只运行一次AsyncTask

时间:2013-03-01 06:31:24

标签: android android-asynctask sharedpreferences

我想在应用程序第一次启动时只在android中运行一次AsyncTask。

我尝试将共享首选项放在onCreate中,但它不起作用。还有其他想法吗?

SharedPreferences prefscrt = PreferenceManager.getDefaultSharedPreferences(this);
        if(!prefscrt.getBoolean("firstTime", false)) {
        Log.d("DownloadManager", "Installing First Time");  

new Task().execute();  //THIS WON'T WORK


SharedPreferences.Editor editor = prefscrt.edit();
        editor.putBoolean("firstTime", true);
        editor.commit();
        }

提前致谢 Madz

2 个答案:

答案 0 :(得分:0)

试试这段代码:

SharedPreferences prefs = getSharedPreferences("firstTime", MODE_PRIVATE);
registartion = prefs.getBoolean("firstTime", false);

现在把你的if条件

答案 1 :(得分:0)

  

1.首先检查值是否为null如果为null则sharedpref使用并保存它们。   2.但是第二次再次检查他们是否已经共享运行你的代码。

private Boolean firstTime = null;
  SharedPreferences mPreferences = this.getSharedPreferences("first_time", Context.MODE_PRIVATE);
  firstTime = mPreferences.getBoolean("firstTime", true);
  private boolean isFirstTime() {
 if(firstTime == null) {
      SharedPreferences.Editor editor = mPreferences.edit();
      editor.putBoolean("firstTime", false);
      editor.commit();
      new Task().execute(); 
  if (firstTime!=null) {

    }
}
return firstTime;
}