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目录

  • 相关阅读:
    第七章 Net 5.0 快速开发框架 YC.Boilerplate -- 数据层ORM 设计
    第六章 Net 5.0 快速开发框架 YC.Boilerplate -- 代码生成和数据库表生成
    第五章 Net 5.0 快速开发框架 YC.Boilerplate -- 缓存模块
    第四章 Net 5.0 快速开发框架 YC.Boilerplate-- 动态WebApi
    第三章 Net 5.0 快速开发框架 YC.Boilerplate-- 多租户介绍
    第二章 Net 5.0 快速开发框架 YC.Boilerplate-- 快速入门
    第一章 Net 5.0 快速开发框架 YC.Boilerplate--框架介绍
    【雕爷学编程】Arduino动手做(90)---4X4矩阵薄膜键盘模块
    【雕爷学编程】Arduino动手做(89)---8位双向电平转换模块
    多端自动化运行:pc+android+ios+小程序 均可
  • 原文地址:https://www.cnblogs.com/Jsonlu/p/4775537.html
Copyright © 2011-2022 走看看