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

Android中Application全局方法(变量)的调用的更多相关文章

  1. Android中Application类总结

    本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处! 前言 最近的开发中经常使用到 ...

  2. Android中Application类的详解:

    Android中Application类的详解: 我们在平时的开发中,有时候可能会须要一些全局数据.来让应用中的全部Activity和View都能訪问到.大家在遇到这样的情况时,可能首先会想到自定义一 ...

  3. C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState

    内置对象: 1.Request - 获取请求对象 用法:接收传值 protected void Page_Load(object sender, EventArgs e) { TextBox1.Tex ...

  4. JNI学习笔记_Java调用C —— 非Android中使用的方法

    一.学习笔记 1.java源码中的JNI函数本机方法声明必须使用native修饰. 2.相对反编译 Java 的 class 字节码文件来说,反汇编.so动态库来分析程序的逻辑要复杂得多,为了应用的安 ...

  5. JNI学习笔记_Java调用C —— Android中使用的方法

    一.笔记 1.JNI(Java Native Interface),就是如何使用java去访问C/C++编写的那些库.若想深入了解JNI可以看官方文档jni.pdf.优秀博文:Android JNI知 ...

  6. android中共享全局数据的方法

    转自:http://blog.csdn.net/ameyume/article/details/6100756 我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Activity和Vi ...

  7. Android中Application的意义及使用方法

    首先,在一个Android程序中,有且只有一个Application对象,在程序启动的时候,首先执行Application的onCreate方法,这是一个Android应用的入口,在开发中,我们常常自 ...

  8. Android中Application的应用

    当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息.通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Appli ...

  9. [转]Android中Application类的用法

    原文链接:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application ...

随机推荐

  1. BZOJ 1028 麻将

    Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张.在 ...

  2. [Forward]Use the SharePoint My Tasks Web Part outside of My Sites

    from http://yalla.itgroove.net/2014/04/use-sharepoint-tasks-web-part-outside-sites/ Use the SharePoi ...

  3. Replicate String in C#

    My original posting on string repetition caused a couple responses, and is currently among the Top P ...

  4. 13. vs2010 ClientID bug处理

    在VS2010中的产生ClientID有几种方式,每个控件或页面有个ClientIDMode属性,可以用来决定产生ClientID的方式,它有AutoID,Static,Inherit,Predict ...

  5. 几个Uboot命令

    1 nand scrub 这个命令会擦除坏块信息,将坏块标识成好的,但此时这个坏块有潜在有危险,在特定条件下仍会造成数据的丢失,所以应该谨慎使用. Run U-boot and then use th ...

  6. phpMyAdmin 完整路径泄露漏洞

    漏洞名称: phpMyAdmin 完整路径泄露漏洞 CNNVD编号: CNNVD-201307-650 发布时间: 2013-08-09 更新时间: 2013-08-09 危害等级: 中危   漏洞类 ...

  7. 关于TCP的粘包和拆包

    问题产生 一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和封包问题. 下面可以看一张图,是客户端向服务端发送包: 1. 第一种情况 ...

  8. C++使用模版技术将任意类型的数据转为某个类型的数据

    将任意类型(int, float, 自定义的数据类型等等)的数据转换的某个类型C中储存,可以通过 将类型C的构造函数写成模版函数的形式,在C中将可以接收任意类型数据.如: class C{ templ ...

  9. python操作RabbiMQ

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...

  10. sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法

    这是由于链接的数据库服务器的版本与本地数据库服务器不一致,有人说要升到sp3,sp4,然后在执行什么语句之类的 我觉得太繁琐了,通过网上查询之后看到可以这么做: USE master GRANT EX ...