androidTwitterGooglePocketスポンサーリンクAndroidでAPIを使ったアプリを開発していた際、非同期処理にハマって苦しんだので、忘れないようにまとめました。間違っている部分がありましたら教えていただけると嬉しいです。Androidアプリで行われる処理は、基本的にメインスレッド(UIスレッドともいう)で行われるよう設計されています。処理がたくさんあったり、一つの処理に要する時間が長かったりする場合は、それらすべての処理をメインスレッドで行ってしまうとメインスレッドに負担がかかってしまいます。そこで特定の処理を別スレッドに投げることで、メインスレッドの負担を減らすことができるのです。各スレッドの役割しかし、すべての処理を別スレッドに投げれるわけではありません。各スレッドで行える処理の代表例は以下のとおりです。・別スレッド:HTTP通信(例:API使用時)(※もっと色々あると思います)別スレッドからUI操作をしたい場合は、Handlerを使ってLooperにお願いする必要があります。LooperとHandlerメインスレッドの根底にはLooperと呼ばれるものがいます。メインスレッド内の処理はこのLooperの中でぐるぐる回ってます。前述したとおり、UI操作はすべてLooperがやってくれます。別スレッドは、Looperのループの中に入ることができません。Handlerというものを使って、メインスレッドに処理を依頼します。サンプル以上を踏まえてサンプルコードを書いてみます。textView.setText("処理が完了しました。}}ボタンが押されたら非同期処理が始まります。非同期処理の内容は1つ目に出てくるrun()のなかに記述します。別スレッドからUI操作をする場合はmHandler.postの中に書きます。はてなブログPro技術系記事、話題のニュース、日記がメインです。アフィリエイトにも興味あり。ブログ開始2ヶ月時点でGoogleAdsenseに合格。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。