android编程中,application这样的名词似乎变得那样的不常见,而让大家更为熟悉的是activity、intent、provider、broadcast和service。但其实android中的application也有着它自身的用处。
打开manifest文件,会看到有一个application配置标签,这就是有关application的使用了。那究竟application有什么用处呢?来看看SDK中是如何描述的:
Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xml's < application> tag, which will cause that class to be instantiated for you when the process for your application/package is created.
就是说application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。所以当我们需要创建全局变量的时候,不需要再像 j2se那样需要创建public权限的static变量,而直接在application中去实现。只需要调用Context的 getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应的处理。
因小工程中涉及到的文件比较多,这里就贴代码撒。
application文件:
Java代码
1. public class TestApplication extends Application {
2.
3. private int curIndex;
4.
5. public int getCurIndex() {
6. return curIndex;
7. }
8.
9. public void setCurIndex(int curIndex) {
10. this.curIndex = curIndex;
11. }
12.
13. @Override
14. public void onCreate() {
15. super.onCreate();
16. }
17.
18. @Override
19. public void onTerminate() {
20. super.onTerminate();
21. }
22.
23. }
public class TestApplication extends Application {
private int curIndex;
public int getCurIndex() {
return curIndex;
}
public void setCurIndex(int curIndex) {
this.curIndex = curIndex;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onTerminate() {
super.onTerminate();
}
}
application中有一个curIndex和setter getter方法。
第一个acitivty中对application进行的操作:
Java代码
1. TestApplication application = (TestApplication) this.getApplication();
2. Log.i("data", ""+application.getCurIndex());
3. application.setCurIndex(5);
TestApplication application = (TestApplication) this.getApplication();
Log.i("data", ""+application.getCurIndex());
application.setCurIndex(5);
第二个Activity:
Java代码
1. TestApplication application = (TestApplication)this.getApplication();
2. Log.i("data", ""+application.getCurIndex());
3. application.setCurIndex(6);
TestApplication application = (TestApplication)this.getApplication();
Log.i("data", ""+application.getCurIndex());
application.setCurIndex(6);
第三个Activity:
Java代码
1. final TestApplication application = (TestApplication) this.getApplication();
2. Log.i("data", ""+application.getCurIndex());
final TestApplication application = (TestApplication) this.getApplication();
Log.i("data", ""+application.getCurIndex());
PS: <application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".TestApplication">
分享到:
相关推荐
Android中用Application类实现全局变量
Application设置全局变量以及传值 /** * 重写Application,主要重写里面的onCreate方法,就是创建的时候, * 我们让它初始化一些值,前段时间在javaeye里面看到过一个例子,与此相似, * 我做了些改进。听说外国...
本文实例讲述了Android编程之Application设置全局变量及传值用法。分享给大家供大家参考,具体如下: /** * 重写Application,主要重写里面的onCreate方法,就是创建的时候, * 我们让它初始化一些值,前段时间在...
而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是使用Application context。 首先需要重写Application,主要重写里面的onCreate方法,就是创建的时候,初始化...
Android-Application被回收引发空指针异常分析(消灭全局变量)-例子 http://blog.csdn.net/zivensonice/article/details/51451486
3 在传数据类中获取全局变量Application对象并设置数据 myApp MyApp getApplication ; myApp setName "jack" ; 修改之后的名称 4 在收数据类中接收Application对象 myApp MyApp getApplication ;">在...
本文实例讲述了Android编程中全局变量。分享给大家供大家参考,具体如下: 现在每天都在忙,而且一忙起来,就把写笔记的事情放在了后面,最近在写程序的时候,突然要使用全局变量,就按照以前的方式,写了一个类,...
本文实例讲述了Android编程中context及全局变量的用法。分享给大家供大家参考,具体如下: 今天在研究context的时候,对application和activity context有了一定的了解,下面是从网上复制过来的资料 Application ...
android中使用Activity、Service、Broadcast实现activity与Service之间的通信,使用application保存全局变量。
Android4.0入门之参数传递4种方式: 1.通过Intent方式传参 2.通过系统剪切板传参、需要对象转化成Base64的字符串进行传递 3.通过Application全局对象传值 4.通过Activity中的静态变量传参
4.4.1 全局变量 4.4.2 常量 4.4.3 只读变量 4.4.4 枚举 4.4.5 结构体 4.4.6 指针 4.5 封装C++代码 4.5.1 指针、引用和值 4.5.2 默认参数 4.5.3 重载函数 4.5.4 类 4.6 异常处理 4.7 内存管理 4.8 从原生代码中调用...
摘要:Java源码,Android源码,悬浮窗 android悬浮窗的实现源码,可作为参考的一个例子,用于显示被... 在MyApplication类中:创建全局变量,全局变量一般都比较倾向于创建一个单独的数据类文件,并使用static静态变量。
Android 在线播放器源码:里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题
大家都知道 Android 的 Activity 是存着历史栈的,比如...使用全局变量。对了,第一个想到的就是继承 Application,代码入下: 代码如下:public class AgentApplication extends Application { private List<Activi
这是别人的资源,里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题
一个开源的Android在线音乐播放器...因为里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题 标签:jamendo
4.4.1 全局变量 94 4.4.2 常量 95 4.4.3 只读变量 96 4.4.4 枚举 97 4.4.5 结构体 100 4.4.6 指针 101 4.5 封装C++代码 101 4.5.1 指针、引用和值 102 4.5.2 默认参数 103 4.5.3 重载函数 104 4.5.4 类 ...