【发布时间】:2016-07-30 05:50:30
【问题描述】:
在我正在开发的应用程序中,某些屏幕需要密码保护。因此,如果用户离开应用程序(通过按主页或其他应用程序进入前台或屏幕关闭)并在一段时间(30 秒)后返回,应用程序应该在之前询问密码(显示密码屏幕)显示他离开的屏幕。
到目前为止我尝试过的是:
在
Application类中,我使用ActivityLifecycleCallbacks跟踪活动生命周期并触发 2 个事件,一个在应用程序进入后台时,另一个在返回前台时。在“后台”事件中,我跟踪当前时间戳。然后在“前台”事件中,我检查应用程序是否在后台运行了 30 秒,如果是,则告诉当前的
Activity启动密码屏幕。
这工作正常。但问题是,这样受保护的内容/屏幕会在一段时间内可见,直到启动密码屏幕(因为密码屏幕是由内容屏幕本身启动的)。
有没有更好的方法可以让密码屏幕首先出现?
【问题讨论】:
-
为什么不从 Application 类本身启动密码活动(带有 clear_top 标志)?
-
@Shaishav 这正是我正在做的,但它并没有解决这个问题。我将启动委托给内容活动,因为它知道是否需要密码保护。
-
您是否在 Application 类中使用
onActivityPaused()和onActivityResumed()生命周期方法来确定应用程序是否进入前台/后台? -
@Shaishav 使用
start和stop事件。