Android中Application全局方法(變量)的調用


      Application和Actovotu,Service一樣是android框架的一個系統組件,當android程序啟動時系統會創建一個 application對象,用來存儲系統的一些信息。通常我們是不需要指定一個Application的,這時系統會自動幫我們創建,如果需要創建自己 的Application,也很簡單創建一個類繼承 Application並在manifest的application標簽中進行注冊(只需要給Application標簽增加個name屬性把自己的 Application的名字定入即可)。
  android系統會為每個程序運行時創建一個Application類的對象且僅創建一個,所以Application可以說是單例 (singleton)模式的一個類.且application對象的生命周期是整個程序中最長的,它的生命周期就等於這個程序的生命周期。因為它是全局 的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以通過Application來進行一些,數據傳遞,數據共享 等,數據緩存等操作。

具體的Application配置,前的文章中已經說明,這里不再累贅,拿干貨

import android.app.Application;
import net.duohuo.dhroid.Const;
import net.duohuo.dhroid.Dhroid;
import org.apache.http.util.EncodingUtils;
import org.json.JSONObject;
import java.io.InputStream;

/**
 * Author:JsonLu
 * DateTime:2015/8/31 09:13
 * Email:luxd@i_link.cc
 */
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        dhroidint();// 初始化dhroid參數

    }

    // dhroidint開發框方法初始化
    private void dhroidint() {
        Const.netadapter_page_no = "request.pageNum";
        Const.netadapter_step = "request.pageSize";
        Const.response_data = "page1";
        Const.netadapter_step_default = 10;
        Const.netadapter_json_timeline = "pubdate";
        Const.DATABASE_VERSION = 20;
        Const.net_pool_size = 30;
        Const.net_error_try = true;
        Dhroid.init(this);

    }

    //從assets中讀取文件
    public JSONObject fileRead(String fileName) {
        JSONObject jsonObject;
        try {
            InputStream in = getResources().getAssets().open(fileName);
            int length = in.available();
            byte[] buffer = new byte[length];
            in.read(buffer);
            String res = EncodingUtils.getString(buffer, "UTF-8");
            jsonObject = new JSONObject(res);
            return jsonObject;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

從其他的類體中調用該方法(MyApplication是一個單例)

//調用MyApplication中的fileRead()方法返回json對象
JSONObject data = ((MyApplication)getApplication()).fileRead("version.json");

另外在這里稍微的絮叨一下,如果是Android Studio的環境可能是沒有assets目錄的,在這里的話就需要配置一下app目錄下的app.iml

<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />  

當然需要在app/src/main目錄下新建一個assets目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM