【发布时间】:2012-09-18 07:57:41
【问题描述】:
每当用户输入错误密码时,我都会尝试在 PasswordUnlockScreen.java 的 verifyPasswordAndUnlock() 中显示 Toast 通知。我写了如下代码,构建成功。
Toast.makeText(getContext(), "Invalid password", Toast.LENGTH_LONG).show();
但是,Toast 没有出现,因为它实际上出现在主屏幕中,当锁定屏幕位于顶部时,它是不可见的。我通过在用户成功登录时出现另一个 Toast 来验证这一点,并且 Toast 仅在锁定屏幕消失后出现在主屏幕中
我怀疑这是因为 getContext() 返回主屏幕的上下文。如何获取锁屏的上下文? PasswordUnlockScreen.this 连编译都没有,而且 mContext 和 context 都和 getContext() 有同样的问题
【问题讨论】:
-
也许使用 getContext.getApplicationContext() ?
-
getContext.getApplicationContext() 也不起作用,一旦设置密码锁,它会导致引导循环,由于系统进程中的致命异常(java.lang.NullPointerException),可能是因为 PasswordUnlockScreen 不是t 在应用程序级别。
-
代码太长,无法粘贴。基本上,当验证失败时,我将 Toast 放入 verifyPasswordAndUnlock() 函数中。
-
这是您的回复 [100% 测试][1] [1]:stackoverflow.com/questions/11257691/…