在Android开发中,我们可以使用BroadcastReceiver来拦截手机屏幕的休眠和唤醒事件。以下是一个简单的示例: 1. 首先,我们需要在AndroidManifest.xml文件中注册一个BroadcastReceiver: ```xml <receiver android:name=".ScreenLockReceiver"> <intent-filter> <action android:name="android.intent.action.SCREEN_ON" /> <action android:name="android.intent.action.SCREEN_OFF" /> </intent-filter> </receiver> ``` 2. 然后,我们需要创建一个BroadcastReceiver的类: ```java public class ScreenLockReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { // 屏幕开启 Toast.makeText(context, "Screen on", Toast.LENGTH_SHORT).show(); } else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { // 屏幕关闭 Toast.makeText(context, "Screen off", Toast.LENGTH_SHORT).show(); } } } ``` 3. 我们需要在需要监听屏幕状态的Activity中启用BroadcastReceiver: ```java IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); registerReceiver(new ScreenLockReceiver(), filter); ``` 这样,当手机屏幕开启或关闭时,我们的ScreenLockReceiver就会收到相应的Intent,然后执行相应的操作。 注意:在实际使用中,我们通常会在Application的onCreate方法中注册BroadcastReceiver,然后在onDestroy方法中取消注册,以避免内存泄漏。 [2023-11-07 22:41:13 | AI问答 | 333点数解答]