1

我正在开发一个小应用程序,它通过对话框屏幕显示用户的密码。

按下主页按钮时,我需要调暗屏幕(在多任务窗口上),以便任何其他人看不到密码。

当用户重新打开应用程序时,它会要求应用程序锁定。但是如果用户打开密码对话框并按下主页按钮,对话框和用户上次查看的密码会保持可见(在多任务窗口上)一段时间(3-4 秒!!)直到一个新的对话框询问锁。

到目前为止,我尝试了可能的 dialog.dissmiss() 选项。仅当再次打开应用程序时对话框才会关闭(直到出现新的锁定对话框),即使我将 dismiss() 放入 onPause、onStop 等。

任何想法表示赞赏。

我也试过,

android.os.Process.killProcess(android.os.Process.myPid());
this.finish();
System.exit(0);

它们都没有真正起作用。

4

1 回答 1

0

建议 1:仔细检查您的实施。将您的对话框与活动生命周期联系起来似乎是个好主意(尤其是为了避免此处描述的泄漏窗口错误)

以下示例对我来说效果很好(coachMark 来自 Dialog)

@Override
protected void onResume()
{
    log.debug("onResume");
    super.onResume();

    // Show the coachMark depending on saved preference values
    coachMark.mayBeShow();
}

@Override
protected void onPause()
{
    log.debug("onPause");

    // Hide the coachMark if it is showing to avoid leakedWindow errors
    coachMark.maybeHide();

    super.onPause();
}

当你按下主页按钮时, onPause肯定会被调用,所以如果这种方法对你不起作用,请尝试不要在活动生命周期的重新启动部分(onRestart()、onStart() 和 onResume())重新创建对话框并查看,如果它被正确解雇。


建议 2:如果上述所有方法都失败,您可以考虑按照此处所述覆盖主页按钮。不过,我强烈建议不要这样做,因为这可能会导致应用程序以用户不期望的方式工作。

于 2013-07-20T14:07:48.553 回答