Неисправность Реализация пользовательского экрана блокировки (проблема фоновых действий) - PullRequest
0 голосов
/ 05 февраля 2012

Я создаю собственный домашний экран с пользовательским экраном блокировки.

Когда экран выключается, я запускаю экран блокировки (активность), Однако, когда экран блокировки убит (методом "finish ()"), он возвращается к последняя активность в моем рабочем столе apk, а не к реальной активности (apk) был виден прямо перед тем, как экран погас.

Например, если я нахожусь в приложении «Калькулятор» или в приложении «Часы», и включается экран блокировки, после завершения действия экрана блокировки он не возвращается в «Калькулятор / Часы»

Здесь я регистрирую экран блокировки (в основной активности запуска) для получения событий включения / выключения экрана:

private void doLockScreenOperations()
{
    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
    lock.disableKeyguard();

    IntentFilter lockfiFilter = new IntentFilter();
    lockfiFilter.addAction(Intent.ACTION_SCREEN_OFF);
    lockfiFilter.addAction(Intent.ACTION_SCREEN_ON);
    getApplicationContext().registerReceiver(new LockScreenReceiver(), lockfiFilter);
}

Вот сам приемник, где я запускаю экран блокировки:

public class LockScreenReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        String action = intent.getAction();

        if (action.equals(Intent.ACTION_SCREEN_OFF))
        {
            if (LockScreenActivity.isLockScreenAlive == false)
            {
                Intent lockIntent = new Intent(context, LockScreenActivity.class);
                lockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(lockIntent);
            }
        }

        else if (action.equals(Intent.ACTION_SCREEN_ON))
        {

        }
    }
}

LockScreenActivity в этот момент представляет собой простое действие с кнопкой это называется finish () при нажатии кнопки.

Понятия не имею, как это исправить.

Заранее спасибо!

1 Ответ

1 голос
/ 15 февраля 2012

Я не совсем уверен, приятель, но вы должны учитывать это: Intent.FLAG_ACTIVITY_NEW_TASK начинает новую новую группу просмотров так что логически у вас нет предыдущей активности, к которой можно вернуться при выходе из экрана блокировки.

Я сам его создаю, очень похоже на то, как вы это делаете на самом деле. но, к сожалению, с этими проблемами: -это иногда загружается медленно -это загружается всякий раз, когда он "чувствует", как: / нм, гадак, приятель

...