Android項目開發所需的基礎框架

jopen 9年前發布 | 9K 次閱讀 Android開發 移動開發 DaXiangLibrary

Android項目開發所需的基礎框架,包括網絡模塊、數據庫模塊、常用的工具類等。目前項目比較簡單,會在以后的工作和學習中不斷豐富、完善。

package com.daxiang.android.http;

import java.util.List;

import org.apache.http.NameValuePair;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.text.TextUtils;

import com.daxiang.android.bean.BaseRequest;
import com.daxiang.android.http.HttpConstants.HttpMethod;
import com.daxiang.android.http.core.HttpTool;
import com.daxiang.android.utils.Logger;

/**
 * 
 * @author daxiang
 * 
 *         2015-3-24
 */
public class JsonUtil {
    private static final String TAG = JsonUtil.class.getSimpleName();
    public static final String CACHE_JSON_SP = "cache_json_sp";

    /**
     * 從server取數據,不做本地緩存;
     * 
     * @param url
     * @param context
     * @param method
     *            請求方式
     * @param postParameters
     *            post請求參數
     * @return
     */
    public static String getJsonFromServer(String url, Context context,
            HttpMethod method, List<NameValuePair> postParameters) {

        return getJsonFromServer(url, false, context, method, postParameters);
    }

    /**
     * 從server取數據,可設置是否進行本地存儲;
     * 
     * @param url
     * @param isCache
     *            true,從服務器取數據并且進行本地存儲;false,沒有本地存儲;
     * @param context
     * @param method
     *            請求方式
     * @param postParameters
     *            post請求參數
     * @return
     */
    public static String getJsonFromServer(String url, boolean isCache,
            Context context, HttpMethod method,
            List<NameValuePair> postParameters) {

        Logger.i(TAG, "getJsonFromServer---" + url);
        String json = "";
        if (method == HttpConstants.HttpMethod.GET) {
            json = HttpTool.httpGet(url);
        } else {
            json = HttpTool.httpPost(url, postParameters);
        }
        Logger.i(TAG, "getJsonFromServer---" + json);
        if (!TextUtils.isEmpty(json)) {
            if (isCache) {
                cacheJsonToFile(url, json, context);
            }
            return json;
        }
        return "";

    }

    public static String getJsonFromServer(String url, Context context,
            HttpMethod method, BaseRequest bean) {

        return getJsonFromServer(url, false, context, method, bean);
    }

    public static String getJsonFromServer(String url, boolean isCache,
            Context context, HttpMethod method, BaseRequest bean) {

        Logger.i(TAG, "getJsonFromServer---" + url);
        // 按照約定當state == 200時說明數據正確

        String json = "";
        if (method == HttpConstants.HttpMethod.GET) {
            json = HttpTool.httpGet(url);
        } else if (method == HttpConstants.HttpMethod.POST) {
            json = HttpTool.httpPost(url, bean);
        } else if (method == HttpConstants.HttpMethod.DELETE) {
            json = HttpTool.httpDelete(url, null, bean);
        }

        Logger.i(TAG, "getJsonFromServer---" + json);

        if (!TextUtils.isEmpty(json)) {
            if (isCache) {
                cacheJsonToFile(url, json, context);
            }
            return json;
        }
        return "";

    }

    /**
     * 從本地緩存文件中取數據;
     * 
     * @param url
     * @param context
     * @return 如果緩存存在且不過期,返回緩存數據,否則返回null;
     */
    public static String getJsonFromFile(String url, Context context) {
        String result = ACache.get(context).getAsString(url);
        if (!TextUtils.isEmpty(result)) {
            return result;
        }
        return null;
    }

    /**
     * 從SharedPreferences中取緩存數據;
     * 
     * @param url
     * @param context
     * @return
     */
    public static String getJsonFromSharedPref(String url, Context context) {
        Logger.i(TAG, "getJsonFromSharedPref---" + url);
        SharedPreferences sp = context.getSharedPreferences(CACHE_JSON_SP,
                Context.MODE_PRIVATE);
        String json = "";
        if (sp.contains(url)) {
            json = sp.getString(url, "");
        }
        return json;
    }

    /**
     * 將Server返回的json字符串緩存到文件;
     * 
     * @param url
     * @param json
     * @param context
     */
    private static void cacheJsonToFile(String url, String json, Context context) {
        ACache.get(context).put(url, json, ACache.TIME_HOUR);
    }

    /**
     * 將Server返回的Json字符串緩存到本地SharedPreferences中;
     * 
     * @param url
     * @param json
     * @param context
     */
    private static void cacheJsonToSharedPref(String url, String json,
            Context context) {
        Logger.i(TAG, "cacheJsonToSharedPref---" + url);
        SharedPreferences sp = context.getSharedPreferences(CACHE_JSON_SP,
                Context.MODE_PRIVATE);
        Editor editor = sp.edit();
        editor.putString(url, json);
        editor.commit();
        Logger.i(TAG, "---cache Json to SharedPref end---");
    }
}


項目主頁:http://www.baiduhome.net/lib/view/home/1440312601327

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!