6

我有一个媒体播放器,只要用户关闭应用程序,无论是通过按下主页按钮、使用后退按钮还是简单地打开另一个应用程序,它都会停止播放。为了获得这种行为,我onStop()在我的主要活动中添加了一个告诉我MediaPlayer(在服务中)停止播放音乐的活动。

但是,我希望在屏幕变暗时继续播放音乐,无论是通过使用电源按钮关闭屏幕,还是仅通过屏幕自动变暗。

现在,当屏幕变暗时,播放器也会停止播放,这意味着 onStop() 方法也会被调用。

如何检查 onStop() 是否被屏幕调暗调用?

我已经在我的对象上应用了一个PARTIAL_WAKELOCKMediaPlayer据我所知,这应该可以让玩家在屏幕关闭后继续运行。

我是否也需要在我的主要活动中添加部分唤醒锁?


刚刚将 a 应用于PARTIAL_WAKELOCK我的主要活动以及我的媒体播放器。现在,屏幕不再自行关闭,当用户按下电源按钮时,音乐仍然停止。

显然,这并不像我想象的那样有效。

有什么方法可以实现我正在寻找的行为?

4

1 回答 1

3

你可以加

private boolean stoppedByUser = false;

字段到您的活动,将其设置为falsein onStart(),设置为trueonBackPressed ()onUserLeaveHint()并在方法中检查它的值onStop()

于 2012-01-25T13:27:06.697 回答