首页 > 解决方案 > 当设备从广播接收器锁定时如何显示活动?

问题描述

public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent intent2 = new Intent();
    intent2.setClass(context, MainActivity.class);
    intent2.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    context.startActivity(intent2);
    playAlarmSound(context);

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
        PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK |
                PowerManager.ACQUIRE_CAUSES_WAKEUP, "MyApp::MyWakeLockTag");
        wakeLock.acquire(1000L /*10 minutes*/);
        wakeLock.release();
    } else {
        PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK |
                PowerManager.ACQUIRE_CAUSES_WAKEUP, "MyApp::MyWakeLockTag");
        wakeLock.acquire(1000L /*10 minutes*/);
        wakeLock.release();
    }
}

@Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { super.configureFlutterEngine(flutterEngine);

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setShowWhenLocked(true);
    }

标签: android

解决方案


推荐阅读