【问题标题】:How touse onBackPresee method in Android?如何在 Android 中使用 onBackPressed 方法?
【发布时间】:2013-07-06 19:04:28
【问题描述】:

我正在 Android 中实现媒体播放器。当我运行应用程序时,我的音乐正在播放,当我单击后退按钮时,我的活动退出。但是我希望当我单击返回按钮时,我的音乐处于暂停状态并且活动想要完成,并且当我重新启动我的应用程序时,我的音乐处于恢复状态。我使用了 onBackPressed(),唯一的活动是完成音乐,而不是暂停。我怎样才能做到这一点?

这是我的代码。

public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.audio);
            init();


            mp=MediaPlayer.create(Audio_Activity.this,R.raw.ennamo_yadho);
            Log.e("Song is playing","in  Mediya Player ");
            mp.setLooping(false);
            mp.start();
            System.out.println("B4 button Click!!!!");

            if(mp.isPlaying())
            {
                if(mp!=null)
                {


                    length=mp.getCurrentPosition();
                    mp.seekTo(length);
                    mp.start();
                }

            }


            mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
            {

                @Override
                public void onCompletion(MediaPlayer mp) 
                {
                    // TODO Auto-generated method stub
                    //finish(); Activity is exist
                    mp.stop();
                    mp.release();
                    btnChapter.setEnabled(true);
                    System.out.println("Music is over and Button is enable !!!!!!");
                }
            });



    public void onBackPress()
        {
            super.onBackPressed();
            if(mp.isPlaying())
            {
                if(mp!=null)
                {
                    mp.pause();
                    finish();
                    System.out.println("Back Button Is Call and Audio Is on Pause state ");

                }
            }

        }

    }

【问题讨论】:

  • 你想达到什么目的?

标签: java android


【解决方案1】:

你应该删除

super.onBackPressed();

然后自己完成 Activity 并暂停音乐...

编辑:你应该重写 onBackPressed() 而不是 onBackPress() 试试下面的代码,并检查 mp.pause 是否在按下带有断点的返回按钮时被调用:

@Override
public void onBackPressed ()
{
        if(mp.isPlaying())
        {
            if(mp!=null)
            {
                mp.pause();
                this.finish();
                System.out.println("Back Button Is Call and Audio Is on Pause state ");

            }
        }
}

【讨论】:

  • 只需删除 super.onBackPressed() ,如果您想在按下返回按钮时完成活动,请调用 this.finish()
  • 但我希望当我的活动完成后立即我的音频音乐也将暂停状态。我的活动已完成但我的音乐不会进入暂停状态。音乐仍在播放活动是退出。
  • 请给我解决方案以暂停音乐后退按钮我也删除了 super.onBackPressed() 但音乐仍在播放。我该怎么做。
猜你喜欢
  • 1970-01-01
  • 2012-11-09
  • 2011-09-18
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
相关资源
最近更新 更多