我创建了一个后台服务这个工作正常甚至应用程序都是杀死状态 现在我想在屏幕关闭时停止后台服务,并在屏幕开启时启动服务。
答案 0 :(得分:0)
在onPause()或onStop()方法中,你必须写:
-- Select the students having the top 5 marks in each subject.
SELECT studentID, studentName, studentMarks, subject FROM
(
-- Use an incremented value to differentiate rows with the same subject.
SELECT *, (@n := if(@s = subject, @n +1, 1)) as n, @s:= subject
FROM student
CROSS JOIN (SELECT @n := 0, @s:= NULL) AS b
) AS a
WHERE n <= 5
ORDER BY subject, studentMarks DESC;
答案 1 :(得分:0)
您可以使用以下操作:
android.intent.action.SCREEN_OFF
android.intent.action.SCREEN_ON
但是不要在清单中为这些广播注册接收器,因为该接收器不会接收这些广播,因为这是受保护的意图,只能由系统发送。
解决方案对于此问题,您必须创建一个服务,为这些意图注册本地广播接收器。如果您这样做,那么只有当您的服务正在运行时,您的应用才会关闭屏幕。
使用以下代码:
IntentFilter screenStateFilter = new IntentFilter();
screenStateFilter.addAction(Intent.ACTION_SCREEN_ON);
screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(mScreenStateReceiver, screenStateFilter);
注意:请勿忘记在服务的onDestroy中取消注册接收方:
unregisterReceiver(mScreenStateReceiver);
希望这适合你...