在Android应用被杀死时,可以注册一个BroadcastReceiver监听ACTION_SHUTDOWN或ACTION_PACKAGE_RESTARTED事件,在接收到该事件后显式地关闭连接。以下是一个示例:
public class MyBroadcastReceiver extends BroadcastReceiver {
private Socket mSocket;
@Override
public void onReceive(Context context, Intent intent) {
// 当接收到需要关闭连接的事件时,显式地关闭mSocket
try {
if (mSocket != null) {
mSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void setSocket(Socket socket) {
mSocket = socket;
}
}
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
receiver.setSocket(socket);
这样,当接收到ACTION_SHUTDOWN或ACTION_PACKAGE_RESTARTED事件时,就能够显式地关闭连接。