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

San*_*eer 6 android media-player android-wake-lock

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

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

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

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

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

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


刚刚应用了PARTIAL_WAKELOCK我的主要活动,以及我的媒体播放器.此时,屏幕不再自动关闭,当用户按下电源按钮时,音乐仍然停止.

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

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

Vla*_*mir 3

你可以加

private boolean stoppedByUser = false;
Run Code Online (Sandbox Code Playgroud)

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