Android,可以通过服务控制按钮吗?

时间:2011-10-13 23:06:34

标签: android eclipse media-player

我有一个应用程序来播放使用媒体播放器服务的无线电流,它的工作方式如下: 当它开始调用服务并且收音机开始播放时,在主视图中我有一个播放和停止按钮,所以当应用程序启动时,因为收音机立即启动我已经设置播放按钮GONE和停止按钮可见。因此,如果我按下停止按钮,它将停止服务并使播放按钮可见,停止按钮为GONE,反之亦然。 到目前为止,如果服务检测到错误,它会向我的通知栏发送Toast和更新,但Stop按钮仍然是可见的,Play按钮仍然是GONE,所以我的问题是如何在检测到时提供服务错误使按钮改变?所以我可以让Play按钮VISIBLE和Stop GONE再试一次。 这就是我在主Activity:

中对OnCreate中的按钮进行编码的方法
 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;
}

我喜欢它的工作方式但看起来很奇怪我的停止按钮可见而不是游戏,到目前为止,如果我按下停止它使我的游戏出现然后我可以再试一次!但不是应用程序应该如何正常工作? 谢谢你的时间。我希望有人能给我指路。

1 个答案:

答案 0 :(得分:1)

您可以绑定到您的服务,该服务将返回您必须实施的IBinder。在你的IBinder里面,您可以使用以下功能:

public void setPlayer(IPlayer player);

您的IPlayer将具有您要从服务中调用的一组功能。您可以在此处放置代码以隐藏停止按钮,显示播放按钮或您要从服务中执行的任何其他操作。

根据要求,指向文档中示例的链接:http://developer.android.com/reference/android/app/Service.html#LocalServiceSample