麻烦实施自定义锁定屏幕(后台活动问题)

时间:2012-02-05 09:37:59

标签: android android-activity lockscreen

我正在使用自定义锁屏构建自定义主屏幕。

当屏幕关闭时,我启动锁定屏幕(活动), 但是,当锁定屏幕被杀死(通过“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 个答案:

答案 0 :(得分:1)

我不完全确定配偶,但你必须考虑这个: Intent.FLAG_ACTIVITY_NEW_TASK启动了一组全新的视图 从逻辑上讲,退出锁定屏幕时,您没有以前的活动。

我自己建造一个,与你实际做的非常相似。 但不幸的是有这些问题: - 有时会加速减速 - 只要它“感觉”如下就加载:/ nm,goodluck mate