我正在开发一个应用程序,我需要在屏幕关闭时暂停活动,当屏幕打开时,必须恢复它。
我希望在服务中完成检测。我使用startservice()来启动我的服务。但不知道在哪里放下以下代码:
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (pm.isScreenOn())
MyActivity.onResume();
else
MyActivity.onPause();
我试着用Google搜索,但我找不到它。
答案 0 :(得分:3)
使用BroadcastReceiver。在服务中声明它:
private final BroadcastReceiver myReceiver = new myReceiver();
在您的服务onCreate:
final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(myReceiver, filter);
在你的服务onDestroy中:
unregisterReceiver(myReceiver);
创建接收器:
public class myReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
//Do something when the screen goes off
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
//Do something when it's back on
}
}
无论如何,请记住默认情况下的活动会在屏幕熄灭时显示onPause并返回onResume