Jor*_*dan 0 android timeout background android-intent
我的Android应用程序有一个不活动超时.在超时时,我将用户返回到"登录"屏幕,该屏幕(始终)位于后台堆栈中.我的SignIn类已android:launchMode="singleTop"
设置,因此总是重用在backstack中运行的实例.
我在超时时开始这个意图:
Intent inactivityTimeout = new Intent(this, SignIn.class);
inactivityTimeout.putExtra(INTENT_EXTRA_INACTIVITY_TIMEOUT, true);
int flags = inactivityTimeout.getFlags();
flags = flags|FLAG_FROM_BACKGROUND|Intent.FLAG_ACTIVITY_CLEAR_TOP;
inactivityTimeout.setFlags(flags);
Run Code Online (Sandbox Code Playgroud)
当SignIn屏幕启动时,它会检查INTENT_EXTRA_INACTIVITY_TIMEOUT
Intent extra.如果找到,则显示"您已签名"对话框.这一切都正常.
现在我将解决这个问题:由于它基于一个计时器,无论我的应用程序是在前台还是后台,都可以触发此Intent.这是理想的,因为我不希望应用程序无限期地保持登录,因为它在后台.
但是,当应用程序在后台并且计时器到期时,将触发此inactivetivityTimeout Intent并将应用程序带回前台.这不是紧急提醒用户,现在他们已经超时,所以我宁愿在后台应用停留,以便不中断当前操作.
我尝试将FLAG_FROM_BACKGROUND
标志添加到我的Intent,但应用程序仍然被带到前台.我不确定还有什么可以尝试,或者这是我应该在我的Intent或我的接收活动中解决的问题.
任何人都可以建议在我的Intent(或响应活动中)实现此方法吗?或者我在这里遗漏了一些概念?谢谢!
由于年龄原因,无需主动撤销凭据.毕竟,在用户尝试重用这些凭证之前,该过程可能会终止.
每个活动都需要检查用户是否具有有效凭据.在该检查中,您还检查年龄,如果凭据正确但太旧,则无法通过凭据检查.并且,在失败的凭据检查中,您将调出登录活动.
这允许您转储计时器.
归档时间: |
|
查看次数: |
2511 次 |
最近记录: |