2010-07-08 91 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