我有一个媒体播放器,只要用户关闭应用程序就停止播放,可以通过按主页按钮,使用后退按钮或只是打开另一个应用程序。
为了解决这个问题,我在主要活动中添加了onStop()
,告诉我的MediaPlayer
(在服务中)停止播放音乐。
但是,我希望音乐在屏幕变暗时继续播放,无论是使用电源按钮关闭屏幕,还是仅通过屏幕自动调光。
现在,当屏幕变暗时,播放器也会停止播放,这意味着onStop()方法也会被调用。
如何通过屏幕调暗来检查onStop()是否被调用?
我已经将PARTIAL_WAKELOCK
应用于我的MediaPlayer
对象,据我所知,该对象应该可以让播放器在屏幕关闭后继续运行。
我是否还需要在主要活动中添加部分唤醒锁?
只需将PARTIAL_WAKELOCK
应用于我的主要活动以及媒体播放器。
现在,屏幕不再自动关闭,当用户按下电源按钮时,音乐仍然停止。
显然,这不符合我的想法。
有没有办法实现我正在寻找的行为?
答案 0 :(得分:3)
您可以添加
private boolean stoppedByUser = false;
您的活动的字段,将其设置为false
中的onStart()
,onBackPressed()和onUserLeaveHint()中的true
并在onStop()
中检查其值方法。