通过注册一个BroadcastReceiver监听屏幕状态变化,即可获取手机的锁屏状态。代码示例如下:
public class ScreenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// 手机锁屏了
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
// 手机解锁了
}
}
}
注册监听器代码如下:
ScreenReceiver mReceiver = new ScreenReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
registerReceiver(mReceiver, filter);
需要注意的是,为了避免内存泄漏,一定要在合适的时机取消注册该接收器,代码如下:
unregisterReceiver(mReceiver);