2011-09-21 88 views
-2

我想在手機關閉時清除共享首選項值?我的應用程序中的後退按鈕存在問題

+0

請改善你的問題,把一些努力,其將被關閉。 – Mudassir

+0

重新提出同樣的問題被認爲是濫用系統;請不要這樣做。如果你可以[編輯]澄清你的問題(http://stackoverflow.com/posts/7498418/edit),那麼請這樣做。一旦你的問題得到了改善(請參閱[faq#howtoask]中的此部分以瞭解如何),標誌着主持人的注意力。選擇「其他」,並要求一個國防部重新打開你的問題。 – Will

回答

2

如何清除SharedPreference當設備是switched off

當設備啓動時,您可以通過BraodcastReceiver將其清除。

public class PhoneStateReceiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(final Context context, Intent intent) { 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      //Clear your `SharedPreference` here. 
     } 
    } 
} 

在您的清單補充一點:

<receiver android:name=".receiver.PhoneStateReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

添加權限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
0

Asfar酒店,因爲我知道,唯一的可能就是用OnDestroy()但你的程序在運行時,該設備已關閉。

0

同樣的問題:Android的:Android: How to make a specific SharedPreference reset itself after the system reboots?

我不知道不同的方式。這個實現非常簡單。只需處理BOOT_COMPLETED廣播操作並通過調用SharedPreference.Editor上的.clear()(answer is here)來清除首選項。

一個簡單的引導接收器可能是這樣的:

public class OnBootReceiver extends BroadcastReceiver{ 

       @Override 
       public void onReceive(Context context, Intent intent) { 
         //clear preferences here   
       } 

} 

也聲明其在AndroidManifest.xml中爲:

  <receiver android:name=".OnBootReceiver"> 
        <intent-filter> 
          <action android:name="android.intent.action.BOOT_COMPLETED" /> 
        </intent-filter> 
      </receiver> 

您還需要爲這個權限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />