Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在onDestroy中执行方法?_Java_Android_Ondestroy - Fatal编程技术网

Java 如何在onDestroy中执行方法?

Java 如何在onDestroy中执行方法?,java,android,ondestroy,Java,Android,Ondestroy,我正在使用服务器编写一个android应用程序。当用户退出活动(将其从最近的活动中删除)时,我希望在销毁活动之前关闭连接并在服务器端进行一些修改。因此,我阅读了有关活动生命周期的内容,发现我需要在onDestroy()中编写关闭连接的最后一个调用。所以我所做的是: 主要活动: @Override public void onDestroy() { super.onDestroy(); try { ConnectionHandler.close(); } c

我正在使用服务器编写一个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()
方法。当用户关闭活动时,我应该如何执行此方法?

您必须在代码之后编写
super.ondestory
。 尝试:


好的,我修复了一些错误,但是当使用
onDestroy()时,它会发送null;当从另一个地方调用它时,而不是从
onDestroy()时,它会发送带有“client”“close”字符串的json
@Override
public void onDestroy()
{
    try {
        ConnectionHandler.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    super.onDestroy();
}