首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重置MediaPlayer onBackPressed

重置MediaPlayer onBackPressed
EN

Stack Overflow用户
提问于 2013-07-23 03:52:01
回答 2查看 461关注 0票数 0

我想有可能取消加载当前的安卓MediaPlayer网址时,按下后退按钮(onBackPressed),并退出到前一个活动,如果有什么都没有。这一切都发生在Activity加载的时候。onCreate有一个ProgressDialog调用。我想取消此对话框,取消创建/启动MediaPlayer并返回。

如何正确地制作它?

代码语言:javascript
复制
@Override
 public void onBackPressed() {
 if (pd!=null) {if (mp3Service!=null) mp3Service.reset(getApplicationContext()); pd.onBackPressed();};
 super.onBackPressed();

 }

这不起作用,而且,在一段时间内,屏幕开始变暗并挂起应用程序。

怎么了,也许我必须调用另一个线程?(playSong在单独的线程中启动)。

EN

回答 2

Stack Overflow用户

发布于 2013-07-23 04:10:57

如果您的进度对话框可见,则需要重写其onBackPressed方法来处理事件:

代码语言:javascript
复制
pd = new ProgressDialog(this) {
  public void onBackPressed() {
    dismiss();
    mediaPlayer.stop();
  }
};
pd.setTitle("Loading");
pd.setMessage("Please Wait..");
pd.setIndeterminate(true);
pd.setCancelable(false);
pd.show();
票数 1
EN

Stack Overflow用户

发布于 2013-07-23 03:59:11

您可以尝试检查对话框中的OnCancelListener,以检测对话框是否已取消。或者,您可以尝试这样的操作

代码语言:javascript
复制
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
    if (keyCode == KeyEvent.KEYCODE_BACK)
    {
        //Do your code here for canceling your service
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

创建对话框时,可以添加取消监听程序:

代码语言:javascript
复制
pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                    // TODO cancel your music service 
            }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17796215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档