首页 > 解决方案 > 屏幕锁定时从后台启动活动

问题描述

我正在开发 VOIP 应用程序,最近遇到了一个问题。当屏幕锁定且应用程序处于后台时,某些设备不会唤醒。我做了一些测试,发现:

所以,我想这与主页按钮或屏幕锁定时应用程序处于后台的事实有关。当接收到 firebase 消息或 JNI 触发一些回调时,应用程序调用 startActivity()

这是我解锁屏幕的方法:

if (powerManager != null) {
            wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK
                    | PowerManager.ACQUIRE_CAUSES_WAKEUP, "App:wakeuptag");
            wakeLock.acquire(1000 * 60);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
            setShowWhenLocked(true);
            setTurnScreenOn(true);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
        } else {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
        }

这是我开始活动的方式:

Intent intent = new Intent(context, VCEngine.appInfo().getActivity(ActivityType.CALL));
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_NO_ANIMATION);
        if (!(context instanceof Activity)) {
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mIsCallFromBackground.set(!AppUtils.isAppOnForeground());
        }
        intent.putExtra(
                context.getString(R.string.extra_conference_join_or_create),
                msg);
        intent.putExtra(context.getString(R.string.extra_is_audio_call), isAudioCall);
        intent.putExtra("isConference", isConference());
        context.startActivity(intent);

标签: android

解决方案


推荐阅读