2010-07-08 71 views
1

我已將靜音按鈕添加到我的應用程序的菜單上,並且想知道是否可以存儲用戶最近的默認設置,以便在他/她重新打開應用程序時使用靜音或取消靜音。商店應用程序首選項Android

這裏是我使用的設置靜音或umute代碼:

public void isMute() { 

     if(mIsMute){  
      mAm.setStreamMute(AudioManager.STREAM_MUSIC, false); 
      mIsMute = false; 

     }else{ 
      mAm.setStreamMute(AudioManager.STREAM_MUSIC, true); 
      mIsMute = true; 
     } 
    } 

回答

1

使用SharedPreferences存儲狀態。在應用程序啓動時讀取它並設置當前狀態。

我修改了一個小例子從android documentation

public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){   
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     mIsMute = settings.getBoolean("IsMute", false); 
     isMute(); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("IsMute", mIsMute); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 
+0

我不知道如何做到這一點。我用我設置靜音或取消靜音的方法更新了原始問題。我是否需要將結果存儲在SharePreferences中並調用以查看init()中有什麼? – taraloca 2010-07-08 13:28:41

+0

我已經更新了我的答案 – 2010-07-08 13:44:23

+0

首先,感謝您的幫助......我讓它工作得挺好。按照我的意思是,每次開始我的應用程序時,即使我關閉了應用程序,但仍未靜音,它也會靜音。我試圖在putBoolean中切換值無濟於事。有任何想法嗎? – taraloca 2010-07-08 15:06:30