我有一個應用程序,使用媒體播放器的服務播放無線電流,它的工作方式如下: 當它開始呼叫服務和收音機開始播放時,在主視圖中我有一個播放和停止按鈕,所以當收音機立即開始播放時,我已經設置了播放按鈕GONE和停止按鈕VISIBLE。所以如果我按下停止按鈕,它會停止服務,並使播放按鈕可見和停止按鈕結束,反之亦然。 到目前爲止,如果服務檢測到錯誤,它會向我的通知欄發送一個Toast和更新,但Stop按鈕仍然是可見的,而Play按鈕仍然是GONE,所以我的問題是如何在檢測時使我的服務的錯誤使按鈕更改?所以我可以有播放按鈕可見和停止去嘗試再次。 這就是我有代碼的OnCreate按鈕在我的主要活動:Android,可以控制一個服務按鈕嗎?
Button playBtn = (Button) findViewById(R.id.buttonPlay);
playBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
View b = findViewById(R.id.buttonPlay);
b.setVisibility(View.GONE);
View c = findViewById(R.id.buttonStopPlay);
c.setVisibility(View.VISIBLE);
TextView textRadioName = (TextView) findViewById(R.id.textView);
textRadioName.setText("You are listening Radio!");
startService(new Intent("PLAY"));
start();
}});
Button stopBtn = (Button) findViewById(R.id.buttonStopPlay);
stopBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
View b = findViewById(R.id.buttonStopPlay);
b.setVisibility(View.GONE);
View c = findViewById(R.id.buttonPlay);
c.setVisibility(View.VISIBLE);
TextView textRadioName = (TextView) findViewById(R.id.textView);
textRadioName.setText("Listen Radio Here");
pause();
}});
,這是我在我的MediaPlayer服務代碼中的錯誤:
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Toast.makeText(this, "Radio not connected!...." , Toast.LENGTH_LONG) .show();
StreamError = true;
updateNotification("Radio not connected!");
return false;
}
我喜歡它的工作原理,但方式它看起來有點奇怪,我的停止按鈕可見,而不是播放之一,到目前爲止,如果我按下停止,它會讓我的播放出現,然後我可以再試一次!但不是應用程序應該如何工作? 謝謝你的時間。我希望有人能告訴我方式。
聽起來很不錯,但我失去了我該如何使用呢?我可以在哪裏找到一個樣本,或者可以分享一些關於如何實施或使用IBinder的內容?謝謝。 – zvzej
從在線教程中獲得它。 – zvzej
對不起,我昨天沒有在線 - 很高興你得到它的工作。 – brianestey