2013-07-03 136 views
4

在以下场景中是否有实现超时功能的方法?如何在Android应用程序中实现应用程序空闲超时?

一个带有html页面和本机屏幕的web应用程序。

1.当应用程序在后台进行5分钟时 - >销毁应用程序。 2.当应用程序处于前台但未收到5分钟的任何用户交互时 - >销毁应用程序。

+0

这可能会帮助你,他们已经解释了你需要做什么来检查系统空闲时间这个较旧的文章[检查此链接](http://stackoverflow.com/a/4075857/1758960) – Gru

+0

为什么地球上会你想这样做? – Simon

回答

2

我想你可以使用这个。

ApplicationConstants.TIMEOUT_IN_MS将300000 // 5分钟

private void timeout() { 

    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 

        System.exit(0);//close aplication 

     } 
    }, ApplicationConstants.TIMEOUT_IN_MS); 

} 

    @Override 
protected void onPause() { 
    super.onPause(); 
    timeout(); 
    } 

干杯,

+0

谢谢你,我会尝试你的建议,并让你知道。 –

+0

不客气......我在我的项目和作品中实施了这种方法 –

2

关于后台状态:

没有必要通过手工默认杀应用程序的过程。如果需要释放其他应用程序的资源,Android OS本身就是这样做的。

请参阅this guide以供参考。

虽然如果您在此“空闲时间”期间需要执行一些后台工作,您可以启动Service来执行这些操作,然后将其停止执行代码。

关于前台状态:

我想在这里使用的最佳方法是将消息发送到应用程序的主线程的Handler,因为你不知道,如果用户将与UI交互他们离开后再次。当用户回到UI时,可以使用Handler的removeMessages方法清除消息队列。

我不建议你用Android中的System.exit(0)完成该过程。

相关问题