我正在使用服务器编写Android应用程序。当用户退出活动(从最近的活动中删除它)时,我想在销毁活动之前关闭连接并在服务器端进行一些修改。所以我读到了活动生命周期,我发现我需要编写最后一次调用来关闭onDestroy()
中的连接。所以我做了什么:
主要活动:
@Override
public void onDestroy()
{
super.onDestroy();
try {
ConnectionHandler.close();
} catch (IOException e) {
e.printStackTrace();
}
}
连接处理程序:
public static void close() throws IOException {
try {
JSONObject json = new JSONObject();
json.put("client", "close");
mConnectionHandler.new AsyncSendToServer().execute(json.toString());
} catch (JSONException e) {
e.printStackTrace();
}
socket.close();
}
邮件传输正在运行,但活动未执行ConnectionHandler.close()
方法。当用户关闭活动时,我该怎么做才能执行此方法?
答案 0 :(得分:1)
您必须在代码后面写super.onDestroy
。
尝试:
@Override
public void onDestroy()
{
try {
ConnectionHandler.close();
} catch (IOException e) {
e.printStackTrace();
}
super.onDestroy();
}