2014-02-25 37 views
2

在我的Android應用程序中,我使用共享首選項來記住一些輸入,以便每當應用程序開始使用時,用戶不需要每次輸入輸入。現在,我需要註銷sharedpreference,如果使用時間該應用程序是超過24小時..像Gmail中的東西我們的登錄細節將被記住24小時或什麼東西和後,它會自動註銷...我需要做什麼改變..我給我的代碼下面..Android Sharedpreferences Timelimit

SharedPreference的記憶

if (spl1.equals("English") ) 
      {SharedPreferences setting = this.getSharedPreferences(PREFS_NAME,0); 
        SharedPreferences.Editor editors = setting.edit(); 
        editors.putString("lo", "lo"); 

        editors.putString("fn", firstName); 
        editors.putString("mn",middleName); 
        editors.putString("ln",lastName); 

        editors.putString("dt",dates); 
        editors.putString("mt",months); 
        editors.putString("yrs",years); 
        //Passing exp no, heart no, lifepath number 
        editors.putLong("name11", sum11); 
        editors.putLong("name12", sum12); 
        editors.putLong("name10", sum10); 

        editors.commit(); 



        Intent t = new Intent(FullExplanationEntry.this, TabLayoutActivityh.class); 
} 

註銷

*

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
      if (item.getItemId() == R.id.button04) { 
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
        SharedPreferences.Editor editor = settings.edit(); 
        editor.remove("lo"); 
        editor.commit(); 
        finish(); 
      } 
      return super.onOptionsItemSelected(item); 

} 
+0

「現在我需要註銷sharedpreference如果使用應用程序的時間超過24小時」,你的意思是你想從sharedprefrences清除值? – r4jiv007

+0

完全.. 24小時後..自動..值需要清除 – Jocheved

回答

5

你可以做的是,使用存儲在sharedprefence上次登錄時間: -

editors.putLong("lastlogin", new Date().getTime()); 

,當用戶啓動應用下一次,得到lastlogin時間,並檢查其是否年齡超過24小時,如果是然後使用清除數據: -

Deleting shared preferences

+0

亞..那好..你知道如何檢查時間是否超過24小時 – Jocheved

+0

你可以計算兩個日期之間的差異,如果它超過24 * 60 * 60 * 1000,那麼它超過24小時 或者你可以參考這個網址http://www.mkyong.com/java/how-to-compare-dates-in-java/ – r4jiv007

+0

謝謝r4jiv。 ..我接受你的答案... – Jocheved

3

您還可以添加系統時間到共享的偏好,然後檢查相同的,比較從共享偏好日起,每當用戶啓動應用程序或當應用程序來前景。

如果這超出了您的限制(24小時),請清除共享偏好