检查是否通过用户交互或屏幕调暗来调用onStop

时间:2012-01-25 12:11:15

标签: android media-player android-wake-lock

我有一个媒体播放器,只要用户关闭应用程序就停止播放,可以通过按主页按钮,使用后退按钮或只是打开另一个应用程序。 为了解决这个问题,我在主要活动中添加了onStop(),告诉我的MediaPlayer(在服务中)停止播放音乐。

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

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

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

我已经将PARTIAL_WAKELOCK应用于我的MediaPlayer对象,据我所知,该对象应该可以让播放器在屏幕关闭后继续运行。

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


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

显然,这不符合我的想法。

有没有办法实现我正在寻找的行为?

1 个答案:

答案 0 :(得分:3)

您可以添加

private boolean stoppedByUser = false;

您的活动的字段,将其设置为false中的onStart()onBackPressed()onUserLeaveHint()中的true并在onStop()中检查其值方法。