zoukankan      html  css  js  c++  java
  • 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目录

  • 相关阅读:
    poj 2411 Mondriaan's Dream 骨牌铺放 状压dp
    zoj 3471 Most Powerful (有向图)最大生成树 状压dp
    poj 2280 Islands and Bridges 哈密尔顿路 状压dp
    hdu 3001 Travelling 经过所有点(最多两次)的最短路径 三进制状压dp
    poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp
    poj 1185 炮兵阵地 状压dp
    poj 3254 Corn Fields 状压dp入门
    loj 6278 6279 数列分块入门 2 3
    VIM记事——大小写转换
    DKIM支持样本上传做检测的网站
  • 原文地址:https://www.cnblogs.com/Jsonlu/p/4775537.html
Copyright © 2011-2022 走看看