【问题标题】:Trouble Implementing custom lock screen (background activities issue)实施自定义锁定屏幕时遇到问题(后台活动问题)
【发布时间】:2012-02-05 09:37:58
【问题描述】:

我正在构建一个带有自定义锁屏的自定义主屏幕。

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

我不知道如何解决这个问题。

提前致谢!

【问题讨论】:

    标签: android android-activity lockscreen


    【解决方案1】:

    我不完全确定伙计,但你必须考虑这一点: Intent.FLAG_ACTIVITY_NEW_TASK 开始一组新的视图 所以从逻辑上讲,您在退出锁定屏幕时没有以前的活动可以返回。

    我正在自己构建一个,与您实际的操作非常相似。 但不幸的是有这些问题: - 有时加载速度会变慢 -它在“感觉”时加载:/ 纳米,祝你好运

    【讨论】:

    • 如何解决主页按钮问题?你们(都)有一些回购要分享吗?
    猜你喜欢
    • 1970-01-01
    • 2020-08-07
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多