【发布时间】:2012-03-11 09:40:05
【问题描述】:
跟进https://stackoverflow.com/a/3448189,真正显示密码屏幕的最佳方式是什么?
我的第一次尝试是使用 LockActivity 启动子活动:
// MainActivity.java
public void onResume() {
super.onResume();
ApplicationState state = ((ApplicationState) getApplication());
if ((new Date().getTime() - state.mLastPause) > 5000) {
// Prompt for password if more than 5 seconds since last pause
Intent intent = new Intent(this, LockActivity.class);
startActivityForResult(intent, UNLOCKED);
}
}
但是,如果 LockActivity 显示超过 5 秒,这会导致 MainActivity 在解锁后再次暂停。
所以,我有一些想法:
- 使用
Fragments在 MainActivity 中显示主屏幕或锁定屏幕。 - 将
Dialog显示为锁定屏幕(非首选)。 - 使用多个
if ... else分支检查是否设置了密码并且 MainActivity 已暂停超过五秒。
举个例子,我想实现与 Dropbox 应用中相同的行为(使用“密码锁定”选项)。
处理这个问题的正确方法是什么?
附:我不确定我是否应该将此作为原始问题的问题发布,从而挖掘出旧线程。我觉得发布一个新问题是一种更简洁的解决方案。
【问题讨论】:
-
您为什么不喜欢 Dialog 解决方案?
标签: android android-intent android-fragments