X分钟后自动退出,Android



我希望实现一个功能,在X分钟不活动后注销用户。经过对SO的类似回答后,建议的方法似乎是-

  • 有一个定时器在后台运行。设置x分钟后超时
  • 在用户与应用交互的每个函数中(基本上是所有事件处理程序),调用一个方法来重置计时器。

我自己想不出比这更好的了,但这似乎是一个巨大的痛苦,即使是一个中等大小的应用程序,有6-7个不同的屏幕和一大堆UI组件。有更好的处理方法吗?

谢谢,
Teja .

您可以使用CountDownTimer并在每个Activity()中从onUserInteraction()重新启动它

在后台设置一个计时器。设置为x分钟后超时

No and yes。如果要在ServiceIntentService中实现计时器,请使用计时器。否则,不。

在用户与应用交互的每个函数中(基本上是所有的事件处理程序),调用一个重置计时器的方法。

这个解决方案很难维护。

您应该在后台运行一个IntentService(这里是演示文章),它可以很容易地实现TimerTaskHandler,并使其内部的可运行代码向您的活动发出广播。在你的活动中,你可以很容易地添加一个BroadcastReciever,在这种情况下,你可以在超时时注销用户。你可以在应用程序对用户不可见时启动服务。

我是这样做的:

1)创建一个全局变量来表示时间日志

2)在每个活动的onStop调用期间,用当前时间更新全局变量。

在每个活动的onResume调用期间,将当前时间与全局变量time进行比较,以查看经过了多少时间

这是我想为自己实现的东西。这是我做的一个"库":https://github.com/zoltanersek/android-timeout-activity

用法:

public class TestActivity extends TimeoutActivity {
@Override protected void onTimeout() {
 // logout
}
@Override protected long getTimeoutInSeconds() {
  return 15 * 60; // 15 minutes
}
}

相关内容

  • 没有找到相关文章

最新更新