【发布时间】:2014-01-25 00:43:53
【问题描述】:
我有一个问题,如果有合适的方法来处理这种情况:
我希望我的应用程序在第一次启动应用程序后立即启动密码活动,或者用户从后台恢复它(例如,用户单击主页按钮并将应用程序移动到后台,然后再次启动它)。
我知道我可以使用特殊权限并授予对系统任务的访问权限来执行此操作,但我不想这样做。还有一些人会建议使用 onPause、onResume 和 onStop - 创建一个布尔变量并将其状态从 true 更改为 false。但这仅在您有一个活动时才有效 - 一旦您从一个活动移动到另一个活动,您必须添加 onActivityResult 或其他东西来处理布尔变量。
所以也许您可以提出更多建议?
更新:
这是来自我的应用程序主要活动的示例代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getAction() != null && getIntent().getAction().equals(Intent.ACTION_MAIN) && savedInstanceState == null) {
requestPinCode();
}
/* .. */
}
private void requestPinCode() {
boolean pinStart = false;
SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
pinStart = appPrefs.getBoolean("switch_pincode", false);
if (pinStart) {
Intent intent = new Intent(this, PinCodeActivity.class);
startActivity(intent);
}
}
如果 pinStart 为真 - 表示锁定已激活,用户必须在应用启动时输入密码。但是,如果您只是单击主页按钮并再次启动应用程序,则不会询问密码。如何处理?我想在用户进入应用程序后立即启动密码活动,但是当他在应用程序内部导航时 - 没有密码。我也想在每一个活动中都有这个,不仅仅是在主要的。
【问题讨论】:
-
您是否要为您的应用而不是整个手机制作另一个屏幕锁?
-
你可以优先存储布尔值
-
不,我正在尝试仅为我的应用程序设置屏幕锁定。它是应用程序的一部分,只是为了保护数据。
-
目前还不清楚您试图保护这些信息的人是谁,因为专门为您的应用设置的另一个屏幕锁很可能只会惹恼用户并且不会提供额外的安全性。你想保护它免受什么,有人偷了手机?
-
我正在尝试保护应用程序内部数据,例如不小心拿手机浏览并想检查此应用程序包含哪些数据的家庭成员。它是财务经理,所以它必须有一个密码。我也通过复选框做到了这一点,所以如果用户不想保护应用程序 - 轻松取消选中密码。
标签: android passwords android-activity android-lifecycle