我希望能够在特定时间段内检测用户在我的Android应用程序中是否处于非活动状态,如果是,我想开始一项新活动,要求用户输入密码以恢复使用该应用程序。之前的活动应该从它离开的地方开始。
这在Android应用程序中是否可行?我猜我应该在应用程序加载后立即启动一个单独的线程,这会不断检查用户活动,但我该怎么做。
答案 0 :(得分:0)
如果不了解您的申请详情,这是一个非常难以回答的问题。
例如......该应用有多少活动?这些活动有什么作用?每个小部件(按钮,列表视图等)都有?
首先,要衡量用户是否“有效”,您需要保留“上次使用”时间字段。但是,这样做意味着保留一个静态的“长”变量(在应用程序级别,或者如果有多个Activity,则通过SharedPreferences持久化)。该变量将以毫秒为单位保持“上次使用”时间。
每次用户与任何活动交互时(触摸,滚动,点击按钮等),您都需要更新此信息。这些交互需要不同的听众,每个人都必须更新“上次使用”的时间。更重要的是,你需要每个监听器在用当前时间更新它之前测试'last used'变量 - 如果它超过5分钟(或者你的超时),那么他们需要将事件提升到强制要求用户输入密码的弹出窗口。
这一切都可行,但它很复杂。
或者,你可以简单地设置一个倒数计时器,但你仍然需要每次触摸,点击或手势来重置倒计时,它仍然需要为你的应用中的每个活动执行此操作。以上大部分内容也适用。
进一步描述您的应用可能有助于某人提供更简洁的答案。