2013-07-03 33 views
0

我有一個按鈕用於播放和停止。這些按鈕可以很好地工作,但是當我播放音樂時,進入其他應用程序的背景,然後返回到我的應用程序,如果按下它,我的播放/停止按鈕將再次播放。這是一個問題,因爲我需要再次按播放按鈕(雖然音樂正在播放),然後按停止按鈕。 我找到辦法用的onSaveInstanceState()來做到這一點,但它不工作,問題又來了,我需要按播放鍵停止音樂whitch在後臺播放時我的代碼:onSaveInstanceState()Android按鈕

int button_status=1; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.player); 
    if (savedInstanceState != null) { 
     button_status = savedInstanceState.getInt("EXTRA_IS_ON"); 
    }} 

@Override 
public void onSaveInstanceState(Bundle outState) { 

    outState.putInt("EXTRA_IS_ON", button_status); 
    super.onSaveInstanceState(outState); 
} 

public void onClick(View v) { 
    internetKonekcija = pk.konekcijaPremaInternetu(); 


    if(button_status == 1)//play the service 
    { 
    button_status=0; 
    startService(new Intent(this, Service.class)); 
    } 
    else//stop the service 
    { 
    button_status=1; 

    stopService(new Intent(this, Service.class)); 
    }  
+0

您是否嘗試過使用切換按鈕?我很確定它是否保存是否被檢查。 – Karakuri

+0

我同意Karakuri切換按鈕會更好,更少代碼。它確實跟蹤自己的選擇狀態。 – yams

回答

0

我建議接近這一不同:不是嘗試存儲一個標誌爲您服務是否正在運行與否,因此具有標誌是錯誤的可能性,當你需要的服務是否正在運行,爲什麼不查詢?看到這個答案對於如何建議:https://stackoverflow.com/a/5921190/441899

0

爲什麼你檢查保存狀態在onCreate?在onRestoreInstanceState中檢查它。也許它有幫助。

其實你的應用程序去的onPause當你去後臺。我真的不相信onSavedInstanceState在應用移至背景時觸發。