昨日の続きで非同期でSSH
昨日のSSHがうまく行かなかったのは、最後UIスレッドで通信しようとしてるからじゃないか?
ってことに気づいたんで、今ちょっと試した。
昨日はganymed-ssh-2の
AsyncTaskLoaderでやってみたら。この行は突破できたぽい。
だが、SSHはつなぎっぱでコマンド送るもんだから、
非同期処理したままUIスレッドに結果を送り続けなければいけない。
が、LoaderManager.LoaderCallbacksではonLoadFinishedで完了時のデータ受け取る以外に何も受け取れないのね・・・
前にお蔵入りしたアプリでAsyncTaskを使ったことがあるが、AsyncTaskには途中経過を受け取る機能があるようなんだが、
AsyncTaskだとActivityがonCreateされるとAsyncTaskも初期化されちゃうらしい。それはそれで困るな・・・
AsyncTaskLoader側から一時的に処理を止めてUIの操作とかはできそうだから、
次回はそっち方向でUIスレッドの変更をやってみたいと思う。
コード量は多くならなそうだが、めんどいな。
ってことに気づいたんで、今ちょっと試した。
昨日はganymed-ssh-2の
conn.connect();
で例外が発生してる気配だったが、AsyncTaskLoaderでやってみたら。この行は突破できたぽい。
だが、SSHはつなぎっぱでコマンド送るもんだから、
非同期処理したままUIスレッドに結果を送り続けなければいけない。
が、LoaderManager.LoaderCallbacksではonLoadFinishedで完了時のデータ受け取る以外に何も受け取れないのね・・・
前にお蔵入りしたアプリでAsyncTaskを使ったことがあるが、AsyncTaskには途中経過を受け取る機能があるようなんだが、
AsyncTaskだとActivityがonCreateされるとAsyncTaskも初期化されちゃうらしい。それはそれで困るな・・・
AsyncTaskLoader側から一時的に処理を止めてUIの操作とかはできそうだから、
次回はそっち方向でUIスレッドの変更をやってみたいと思う。
コード量は多くならなそうだが、めんどいな。