LoaderCallbacksインターフェースの実装
次に、Loaderを呼び出すActivity(Fragment)には、LoaderCallbacksインターフェースを実装します。必須となるメソッドは、次の3つです。
メソッド名 | 呼ばれるタイミング |
---|---|
onCreateLoader | Loaderが新しく作成されたとき |
onLoadFinished | Loader内の処理が終了したとき |
onLoaderReset | Loaderがリセットされたとき |
LoaderManagerのinitLoaderメソッドが実行されると、onCreateLoaderメソッドがコールバックされます。onCreateLoaderメソッドでは、まずLoader本体の処理を記述したHttpAsyncLoaderを生成し(4)、それからforceLoadメソッドを呼び出して、非同期処理を開始しています(5)。
(6)では、Web APIから取得した文字列を、ログに書き込んでいます。実際の処理では、ここで取得した値を解析し、UIに反映するコードなどを追加します。
インターネットの接続
エミュレータから実行する前には、AndroidManifest.xmlへ、以下の許可を忘れずに追加しておきましょう。この許可がないと、通信の実行時にエラーとなってしまいます。
<uses-permission android:name="android.permission.INTERNET" />
以上のコードを追加して実行すると、次のようなログが出力されます。この文字列は、大阪府の天気予報情報をJSON形式にしたものです。
天気予報のWeb API
今回作成するお天気アプリでは、現在値の天気予報などの気象情報を表示します。気象情報の取得に、Web APIを適用します。
drk7.jpについて
今回のアプリでは、drk7.jpというサイトで公開されている、気象庁の天気予報情報を配信するWeb APIを利用します。
このAPIでは、気象庁が公開している天気予報情報から、独自の手法でメタデータ化した情報を配信しています。配信データの形式は、XMLとJSONに対応しています。
天気予報情報のデータは、都道府県ごとに取得できるようになっています。例えば大阪の天気予報情報であれば、次のURLを参照します。
大阪の天気予報情報
27が、都道府県に対応したコード番号です。なお、drk7.jpは、個人で運営されているサイトであり、私的な目的での利用を前提としています。それ以外の商用利用等の目的では利用できませんので、ご注意ください。
その他の気象情報のWeb API
drk7.jp以外で、無料で利用できる気象情報のWeb APIには、以下のようなものがあります。
- Weather Hacksお天気Webサービス:全国142か所の今日・明日・あさっての天気予報・予想気温と都道府県の天気概況
- Yahoo!デベロッパーネットワーク気象情報API:指定した緯度経度の雨の強さや、降水強度予測値
- Weather API:世界中の天気予報、海洋気象情報
最後に
今回は、AsyncTaskLoaderを利用した非同期処理を用いて、Web APIにアクセスするコードを説明しました。次回はお天気アプリのプロジェクト作成と、JSONデータの解析処理などを解説していきます。