2014-11-10 2 views
3

У меня есть реализованное приложение 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 ревнивые дети!

так что есть какая-то идея, что я могу здесь сделать, например, как я могу отключить воздействие или заставить повторное соединение?

+0

Мне пришлось удалить систему autoreconnect aSamack, и я сделал это полностью самостоятельно, таким образом мое приложение получило стабильность. – zozelfelfo

+0

ах черт его ур прав, человек, как я это забыл, ответьте пожалуйста – Reza

+0

Вот ты :) – zozelfelfo

ответ

0

Мне пришлось удалить систему autoreconnect aSamack, и я сделал это полностью самостоятельно, таким образом мое приложение получило стабильность.