在以下情况下是否有实现超时功能的方法?
包含html页面和原生屏幕的Web应用程序。
1.当应用程序在后台运行5分钟时 - >破坏申请。 2.当应用程序在前台但没有接收任何用户交互5分钟时 - >销毁应用程序。
答案 0 :(得分: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();
}
干杯,
答案 1 :(得分:2)
关于背景状态:
默认情况下,无需手动终止应用程序的进程。如果需要为其他应用程序释放资源,Android OS会自行完成此任务。
请参阅this guide以获取参考。
虽然如果你需要在这个“空闲时间”执行一些后台工作,你可以启动Service来执行这些操作,然后从代码中停止它。
关于前景状态:
我认为这里使用的最佳方法是将消息发送到应用程序主线程的Handler,因为您不知道用户在离开后是否会再次与UI交互。当用户返回UI时,您可以使用Handler的removeMessages方法清除消息队列。
我不建议您在Android中使用System.exit(0)完成此过程。