Android应用程序自动退出/超时功能

Android应用程序自动退出/超时功能,android,timeout,exit,Android,Timeout,Exit,我们已经开发了一段时间的webapp,它被设计为只通过我们的Android应用程序访问。显然,该应用程序本身非常轻量级——主要提供创建帐户和登录的功能,以及确保只能通过我们的Android应用程序访问webapp本身——但我离题了 该应用程序非常依赖于PHP会话变量,这些变量会过期。在当前的测试环境中,如果会话过期,您将被踢出登录屏幕。但在生产中,登录屏幕将在Android应用程序上,完全独立于WebView 我现在的想法是让一个服务在后台运行,它检查数据库中用户最后一次活动的时间戳,如果它在某

我们已经开发了一段时间的webapp,它被设计为只通过我们的Android应用程序访问。显然,该应用程序本身非常轻量级——主要提供创建帐户和登录的功能,以及确保只能通过我们的Android应用程序访问webapp本身——但我离题了

该应用程序非常依赖于PHP会话变量,这些变量会过期。在当前的测试环境中,如果会话过期,您将被踢出登录屏幕。但在生产中,登录屏幕将在Android应用程序上,完全独立于WebView

我现在的想法是让一个服务在后台运行,它检查数据库中用户最后一次活动的时间戳,如果它在某个窗口之外,我们就关闭webview。但如果有什么办法,我们可以在15分钟(或其他)不活动后退出应用程序——那会更好——或者至少更容易。。。我想


有没有办法做到这一点——设置自动超时退出功能?或者使用onPause功能退出应用程序?

我知道Android开发者会认为这是异端邪说,但这应该是可行的:

Activity.moveTaskToBack(true);
Process.killProcess(Process.myPid());
不过,这将是绝对的最后手段

我现在的想法是让一个服务在后台运行,它检查数据库中用户最后一次活动的时间戳,如果它在某个窗口之外,我们就关闭webview

为什么选择
服务

但如果有什么办法,我们可以在15分钟(或其他)不活动后退出应用程序——那会更好——或者至少更容易。。。我想

您不想退出应用程序。您想返回登录屏幕


检查
WebView
-托管活动的
onResume()
中的超时状态。如果活动太旧,请在登录屏幕上调用
startActivity()
,然后调用
finish()
关闭
WebView
-托管活动。

谷歌反复声明开发人员不应该这样做。开发人员不需要像Android用户那样了解这一点,所以谷歌需要更好地教育用户。令人惊讶的是,任务杀手是多么受欢迎,人们是如何确信他们节省了电池。如果人们看到我的应用程序“运行”,他们会认为它在使用电池,并指责我的应用程序,而不是谷歌。这就是为什么我们需要终止进程。你看,这就是为什么Stackoverflow是我最喜欢的站点。当我可以直接进入登录屏幕时,我为什么要退出应用程序。。。只是需要一个全新的视角,这一切都很有意义!现在,我想我还没有真正深入到这一点上,超时是我可以在WebView托管活动中设置的东西吗?也就是说,只是一个在活动启动时运行的计时器?还是比这更复杂?我假设即使应用程序在后台,计时器也会继续运行?@user446882:为什么要使用计时器?只需将当前时间戳与表示“egad!我们已过期!”值的任何值进行比较。如果这纯粹是“不活动”,请将当前时间戳保存在
onPause()
中,并将其与
onResume()
中的当前时间戳进行比较。这是最巧妙的做法。我应该把这一切都弄清楚。。。或者至少在我不喝咖啡的时候试过了哈哈哈