我需要一种方法来检测我的应用程序何时关闭,以便我可以告诉Web服务器清除它存储的会话变量。有没有办法做到这一点?
答案 0 :(得分:5)
我假设你的应用程序扩展了Activity。
您可以使用onDestroy()
方法:
来自docs:
onDestroy()您的活动被销毁之前收到的最终通话。这可能是因为活动正在完成(有人在其上调用finish(),或者因为系统暂时销毁此活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况。
您的代码如下所示:
public class YourAppActivity extends Activity {
...
...
@Override
protected void onDestroy() {
super.onDestroy();
//clear your session variable.
//you may want to do this quick, and on another thread
//to prevent android from killing your app
}
}
答案 1 :(得分:0)
检查
Activity Lifecycle和
我想你可以在onDestroy()
答案 2 :(得分:0)
您可以尝试在应用程序被系统销毁时运行的onDestroy()
,或者在应用程序失去可见性时(通常在销毁之前)onStop()
。您的代码看起来像这样:
public void onDestroy() {
super.onDestroy();
//Enter your code here to do stuff
}
然而,在销毁你的应用时,它使用的变量将随之被破坏。
请参阅:How to release or clear the value of variable or object?
答案 3 :(得分:0)
为此,您必须为整数类型的计数器创建静态变量。 On OnCreate方法将变量增加1并打开OnDestroy()方法减少变量值。并在OnDestroy()方法中检查静态变量值是否为0如果为0则调用web服务以清除会话
答案 4 :(得分:0)
我会使用Activity的 onDestroy()方法检查用户是否正在终止应用程序,或者操作系统是否因为 isFinishing()强>方法。要部署“销毁Web会话”逻辑,您可以启动IntentService来启动此操作。
希望它有所帮助。