- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个问题,是否有合适的方法来处理这种情况:
我希望我的应用程序在应用程序首次启动时立即启动密码 Activity ,或者用户从后台恢复它(例如,用户单击主页按钮并将应用程序移至后台,然后再次启动它)。
我知道我可以使用特殊权限并授予对系统任务的访问权限来执行此操作,但我不想这样做。还有一些人会建议使用 onPause、onResume 和 onStop - 创建一个 bool 变量并将其状态从 true 更改为 false。但这仅在您有一个 Activity 时才有效——一旦您从一个 Activity 移动到另一个 Activity ,您就必须添加 onActivityResult 或其他东西来处理 bool 变量。
所以也许您可以提出更多建议?
更新:
这是来 self 的应用主要 Activity 的示例代码:
@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 为真 - 这意味着锁定已激活并且用户必须在应用程序启动时输入密码。但是,如果您只是单击主页按钮并再次启动应用程序,则不会询问密码。如何处理?我想在用户进入应用程序后立即启动密码 Activity ,但当他在应用程序内导航时 - 没有密码。我也想在每个 Activity 中都有这个,而不仅仅是在主要 Activity 中。
最佳答案
您可以将 bool 值存储在 shared preferences 中,即使您切换 Activity ,它也会在内存中保持持久性。例如:当您想解锁您的应用程序时(例如在 onStop() 中),您可以使用此方法将其设置为 false:
public void setLockStatus(boolean lock) {
getSharedPreferences("SOMETAG", 0).edit().putBoolean("LOCK", lock)
.commit();
}
稍后当你想检查你的应用程序是否被锁定时(可能在下一个 Activity 的开始时):
public boolean getLockStatus() {
return getSharedPreferences("SOMETAG", 0).getBoolean("LOCK", true);
}
另请注意,如果未设置“LOCK”值(如 getBoolean 的第二个参数所示),此方法将返回 true。
因此,如果应用程序已锁定,您在启动时拥有的每个 Activity 都会检查我们的标志。
@Override
public void onStart() {
super.onStart();
if (getLockStatus() == true) {
// show lockscreen
} else {
// we are not locked.
}
}
现在我们还需要一个标志来检查我们是否仍在应用程序中并且从未离开过:
public void setAppStatus(boolean status) {
getSharedPreferences("SOMETAG", 0).edit().putBoolean("IN_APP", status)
.commit();
}
public boolean getAppStatus() {
return getSharedPreferences("SOMETAG", 0).getBoolean("IN_APP", false);
}
所以现在每次我们启动一个新的 Activity 之前,我们都必须设置一个标志,表明我们仍在应用程序中,这样 onStop 就会知道我们不应该锁定应用程序。例如,如果您的按钮 onClick 在 onClick 中启动一个新的 Activity,我们可以这样做:
@Override
public void onClick(View v) {
setAppStatus(true); // we are not leaving the app.
// startActivity(blabla);
}
现在 onStop 检查我们是否需要锁定:
@Override
public void onStop() {
super.onStop();
if(getAppStatus() == false) setLockStatus(true); // locking the app
else setLockStatus(false);
}
编辑:您还需要 setAppStatus(false);如果您真的要离开应用程序。
希望这能让您了解如何解决它,您需要自己实现后退逻辑(何时锁定应用程序,何时不锁定)。
关于android - 背景简历上的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20969848/
Internal Server Error: /admin/account/customuser/add/ Traceback (most recent call last): File "C:\
有问题!虽然我发现几乎相似的线程但没有帮助:( 我编写了一个 php 脚本来从我的 MySQL 数据库中获取注册用户的数量。该脚本在我的本地主机上运行良好;它使用给定的用户名、密码和主机名,分别是“r
我正在做一项基于密码的作业,我将 key 和消息放在单独的数组中。我想创建第三个数组,其中包含围绕消息大小的 key ,如下所示: message keykeyk 我已经在这个问题上苦苦挣扎了一段时间
我的几个客户要求我实现图形密码检查器,例如 关于如何实现这种 UI 有什么想法吗? 最佳答案 试着看看这个:https://code.google.com/p/android-lockpattern/
我正在使用 MAMP,每次登录 phpMyAdmin 时,都会收到以下错误/警告消息: the configuration file now needs a secret passphrase (bl
我正在尝试通过将 Visual Studio 2013 连接到我的测试机来调试 WDF 驱动程序。它创建一个名为 WDKRemoteUser 的用户,并在进行测试时尝试自动登录。有人知道这个用户的密码
使用具有指定用户名和密码的 SVN 提交。我希望服务器抛出错误;所以我可以告诉我的用户他/她的密码错误。 相反,在使用错误密码提交后: svn commit "test_file.txt" --use
我正在尝试实现 friend 推荐。 它从节点“你”开始。而且,我想找到节点“安娜”。 换句话说,这是我的两个或更多 friend 共同认识的人。上面的示例节点是 Anna。 如果您的帮助,我将不胜感
我都尝试过 wget --user=myuser --password=mypassword myfile 和 wget --ftp-user=myuser --ftp-password=mypass
我的一位用户提示说,每当他尝试使用默认管理界面(Django 的管理员)添加新用户(auth.User)时,新用户名和密码都会自动填充他自己的。 问题是他在登录时要求 Firefox 记住他的用户名/
我们正在开发一款应用(当然)用于应用购买 (IAP)。我已完成指南中的所有操作以启用 iap,并且一切正常,直到我想要购买为止。 部分代码: MainViewController.m -(vo
我试图创建两个可选匹配项的并集(如下所示),但我得到的不是并集,而是两者的交集。我应该如何更改此查询以获得所需的联合? optional match (a:PA)-[r2:network*2]-(b:
我想将Ansible用作另一个Python软件的一部分。在该软件中,我有一个包含其用户名/密码的主机列表。 有没有一种方法可以将SSH连接的用户/密码传递给Ansible ad-hoc命令或以加密方式
嗨,我在使用xampp的Apache Web服务器上收到错误500。直到我使用.htaccess,.htpasswd文件,错误才出现。我搜索了,但找不到语法错误。我只有1张图片和要保护的索引文件。以下
我一直使用它来编辑用户帐户信息: $this->validate($request, [ 'password' => 'min:6', 'password_confirmation'
我需要使用InstallUtil来安装C# Windows服务。我需要设置服务登录凭据(用户名和密码)。这一切都需要默默地完成。 有没有办法做这样的事情: installutil.exe myserv
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
如果我有一个随机的、16 个字符长的字母数字盐(不同大小写),它是为每个用户生成和存储的,我是否还需要一个站点范围的盐? 换句话说,这样好吗? sha1($user_salt . $password)
我正在开发一个空白程序,该程序将允许用户创建一个帐户,以便他们可以存储其余额和提款/存款。用户输入用户名和密码后,如何存储这些信息以便用户可以登录并查看其余额?我不一定要尝试使其非常安全,我只是希望能
我正在尝试寻找一种通用方法来搜索没有链接到另一个节点或节点集的节点或节点集。例如,我能够找到特定类型(例如 :Style)的所有节点,这些节点以某种方式连接到一组特定的节点(例如 :MetadataR
我是一名优秀的程序员,十分优秀!