1

メッセージがサーバーに配信されない状況を処理する方法はありますか? Dolphin のログは状況を明確に示していますが、コードからキャッチしたいと思います。onFinishedのようにオーバーライドするonErrorのようなメソッドを探していました。

clientDolphin.send(message, new OnFinishedHandlerAdapter() {
        @Override
        public void onFinished(List<ClientPresentationModel> presentationModels) {
            // Do something useful
            }
        }
    });

、しかし、そのようなものは何もありません。また、try/catch でsend呼び出しをラップしても機能しません (send は呼び出し元コードをブロックしていないため、驚くことではありません)。

配信されていないメッセージについて通知を受ける簡単な方法が確かにあると思いますが、それを見ることができません。事前に、答えをありがとう!

4

1 に答える 1

1

onException ハンドラーを ClientConnector に割り当てることができます - 実際にはそうすることになっています。例外ハンドラーは、非同期送信アクションで発生した、渡された例外オブジェクトを取得します。

以下は、何をすべきかを教えてくれるデフォルトのハンドラーです;-)

Closure onException = { Throwable up ->
    def out = new StringWriter()
    up.printStackTrace(new PrintWriter(out))
    log.severe("onException reached, rethrowing in UI Thread, consider setting ClientConnector.onException\n${out.buffer}")
    uiThreadHandler.executeInsideUiThread { throw up } // not sure whether this is a good default
}
于 2013-10-12T03:37:48.660 に答える