package com.android_mvc.framework.net.old; import android.os.Handler; import android.os.Message; /** * HTTP通信のPOSTタスク完了時に,通信の成否に応じて, * 受信した通信内容をUI上で取り扱うための抽象クラス。 * @author id:language_and_engineering * */ public abstract class HttpPostHandler extends Handler { /** * このメソッドは隠ぺいし,Messageなどの低レベルオブジェクトを * 直接扱わないでもよいようにさせる */ public void handleMessage(Message msg) { boolean isPostSuccess = msg.getData().getBoolean("http_post_success"); String http_response = msg.getData().get("http_response").toString(); if( isPostSuccess ) { onPostCompleted( http_response ); } else { onPostFailed( http_response ); } onFinally(); } // 下記をoverrideさせずに抽象化した理由は,本クラス指定時に // 「実装されていないメソッドの追加」でメソッドスタブを楽に自動生成させるため。 // また,異常系の処理フローも真剣にコーディングさせるため。 /** * 通信成功時の処理を記述させる。 */ public abstract void onPostCompleted( String response ); // 名前をonPostSuccessではなくonPostCompletedにした理由は, // メソッド自動生成時に正常系が先頭に来るようにするため。 /** * 通信失敗時の処理を記述させる */ public abstract void onPostFailed( String response ); /** * 成否を問わず,最後に呼ばれるメソッド */ public void onFinally() { // Override me } }