监听屏幕状态
监听屏幕状态只能动态注册广播
如果有需要可以在服务中注册广播就不会被销毁
public class MainActivity extends AppCompatActivity {
private MyReceiver myReceiver;
private IntentFilter intentFilter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myReceiver = new MyReceiver();
intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
intentFilter.addAction(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(myReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_SCREEN_ON.equals(action)) {
Log.e("屏幕状态", "开屏");
} else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
Log.e("屏幕状态", "锁屏");
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
Log.e("屏幕状态", "解锁");
}
}
}
}