2015-12-10 42 views
2

我想存儲登錄數據,但我希望在60分鐘後刪除數據。 這樣做的正確方法是什麼?如何在60分鐘後刪除sharedpreference

該應用程序可以在60分鐘內關閉,停止,打開。 我不想使用內部數據庫。

這裏是我的訪問SharedPreferences

sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedpreferences.edit(); 
editor.putString(Username, usernameTxt); 
editor.putString(Password, passwordTxt); 

回答

0

我認爲這樣做最簡單,最直接的方法是保持截止日期:

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedpreferences.edit(); 
editor.putString("Username", usernameTxt); 
editor.putString("Password", passwordTxt); 
editor.putLong("ExpiredDate", System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(60)); 
editor.apply(); 

然後檢查

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
if (sharedpreferences.getLong("ExpiredDate", -1) > System.currentTimeMillis()) { 
    // read email and password 
} else { 
    SharedPreferences.Editor editor = sharedpreferences.edit(); 
    editor.clear(); 
    editor.apply(); 
} 

但是,@CommonsWare是正確的,並保持信息只是你的過程更加正確。

+0

謝謝,那就做了 –

0

個人代碼,我不會實現它的方式。將信息保存在您的過程中,以便數據在您的過程中消失。

這就是說,歡迎您使用JobSchedulerAlarmManager安排將來要完成的工作,無論您當時的應用狀態如何。

+0

我檢查了這兩個選項,我不得不說我的API限制是16,而這兩個是19和更大。不能使用它們 –

+1

19以上?什麼? AlarmManager被添加到API級別1中,這是Android的第一個版本。 http://developer.android.com/reference/android/app/AlarmManager.html – Moonbloom

+0

ooh ok我會檢查一下,謝謝 –

相關問題