0

我有一个连接到互联网并播放流的Intent启动:MusicService

final Intent i = new Intent(MusicService.ACTION_URL);
Uri uri = Uri.parse("http://31.3.242.244:8058");

i.setData(uri);
startService(i);

progressDialog = ProgressDialog.show(fmActivity.this, "", "connecting...");
progressDialog.setCancelable(true);

建立连接后,我Handler关闭了对话框:

static Handler closeHandler = new Handler() {
    public void handleMessage(Message msg) {
        if (progressDialog !=null) {
            progressDialog.dismiss();
        }
    }
};    
fmActivity.closeHandler.handleMessage(null); //from the MusicService

除非连接挂起或服务器连接缓慢,否则这一切都很好。我需要能够取消Intent尝试MusicService使用后退按钮启动的操作。检查互联网连接无济于事,因为始终存在连接......用户需要能够取消连接呼叫,因为如果与服务器的连接由于某种原因失败,它会阻止用户加载不同的流。我已经搜索了所有内容,但无法找到如何执行此操作。谢谢。

4

1 回答 1

0

ProgressDialog您可以在取消取消之前停止音乐服务OnClickListener

例如:

    progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int which) {
                stopService(i); // Stop the music service here
                dialog.dismiss();
            }
});
于 2012-09-05T18:23:32.993 回答