У меня есть реализованное приложение aSmack (8-4.0.5), так как мы знаем, что оно имеет внутреннее управление реконнекцией, но его не оговаривает. Поскольку мы несколько раз должны ждать 5 минут, чтобы пересоединиться, пока мы знаем, что это хорошо время, чтобы сделать это, так что я реализовал это:aSmack, как заставить повторное соединение?
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if(isNetworkAvailable()){
if(MyService.myServiceInstance!=null){
if(!MyService.connection.isConnected() || !MyService.connection.isAuthenticated()){
MyService.myServiceInstance.performReconnect();
// Which goes to Connect() and Authenticate()
}
}
LMApplication.getInstance().getPresistentJobManager().onNetworkChange(true);
}
}
};
но проблема несколько раз они оба пытаются подключиться (мой менеджер и встроенный менеджер), в то же время, и в результате, они воссоединиться рядом и каждый раз, когда я получаю эту ошибку:
11-10 14:58:09.069: W/PacketWriter(26439): Exception writing closing stream element
11-10 14:58:09.069: W/PacketWriter(26439): java.io.IOException: BufferedWriter is
closed
11-10 14:58:09.069: W/PacketWriter(26439): at
java.io.BufferedWriter.checkNotClosed(BufferedWriter.java:130)
11-10 14:58:09.069: W/PacketWriter(26439): at
java.io.BufferedWriter.flush(BufferedWriter.java:122)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.util.ObservableWriter.flush(ObservableWriter.java:44)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.tcp.PacketWriter.writePackets(PacketWriter.java:190)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.tcp.PacketWriter.access$000(PacketWriter.java:40)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.tcp.PacketWriter$1.run(PacketWriter.java:77)
Я думаю, потому что 1 уже сделал работа и закрывает писателя, а другой видит, что писатель закрыт, отключите соединение! как 2 ревнивые дети!
так что есть какая-то идея, что я могу здесь сделать, например, как я могу отключить воздействие или заставить повторное соединение?
Мне пришлось удалить систему autoreconnect aSamack, и я сделал это полностью самостоятельно, таким образом мое приложение получило стабильность. – zozelfelfo
ах черт его ур прав, человек, как я это забыл, ответьте пожалуйста – Reza
Вот ты :) – zozelfelfo