- 浏览: 111602 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (98)
- java (27)
- jms (2)
- jta (0)
- 性能调优及内存分析 (4)
- 设计模式 (14)
- 框架 (6)
- 其它 (9)
- job (1)
- maven (1)
- 服务器 (2)
- 分布式 (3)
- ibatis (1)
- linux (0)
- mysql (0)
- 并发编程 (0)
- java多线程 (2)
- 前端跨域 (1)
- 线程dump分析 (0)
- velocity (0)
- 数据库 (2)
- 协议 (0)
- 监控 (0)
- 开源软件 (2)
- 算法 (0)
- 网络 (1)
- spring (1)
- 编码 (0)
- 数据结构 (0)
- HTable和HTablePool使用注意事项 (0)
- opencms (0)
- android (16)
- 操作系统 (2)
- top (0)
最新评论
-
hold_on:
@Override public boolea ...
android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片) -
achersnake:
123
Servlet中listener(监听器)和filter的总结 -
angel243fly:
我用了这个方法,还是报同样的错误,还有什么建议吗?
eclipse提示CreateProcess error=87错误的解决方法
Android用Application设置全局变量以及使用
- 博客分类:
- android
如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型;而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是使用Application context。
首先需要重写Application,主要重写里面的onCreate方法,就是创建的时候,初始化变量的值。然后在整个应用中的各个文件中就可以对该变量进行操作了。
启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。下面举个例子详细介绍一下应用步骤。
下面是MyApp.java
package com.android.test;
import android.app.Application;
public class MyApp extends Application{
private String mylabel ;
public String getLabel(){
return mylabel;
}
public void setLabel(String s){
this.mylabel = s;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
setLabel("Welcome!"); //初始化全局变量
}
}
下面是mainActivity.java
package com.ginwave.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class mainActivity extends Activity {
private MyApp myApp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myApp = (MyApp) getApplication(); //获得自定义的应用程序MyApp
Log.i("guoll", "InitLabel:"+myApp.getLabel()); //将我们放到进程中的全局变量拿出来,看是不是我们曾经设置的值
myApp.setLabel("Changing!"); //修改一下
Log.i("guoll", "ChangeLabel:"+myApp.getLabel()); //看下,这个值改变了没有
Intent intent = new Intent(); //再看一下在另一个Activity中是取到初始化的值,还是取到修改后的值
intent.setClass(this, otherActivity.class);
startActivity(intent);
}
}
另一个otherActivity.java:
package com.android.test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class otherActivity extends Activity{
private MyApp myApp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myApp = (MyApp) getApplication(); //获得自定义的应用程序MyApp
Log.i("guoll", "OhterActivity receive the Label:"+myApp.getLabel()); //查看变量值是否修改了
}
}
修改配置文件ApplicationManifest.xml,将要运行的应用程序MyApp加进去:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.test"
android:versionCode="1"
android:versionName="1.0">
<!-- 在这里,将默认的Application设置成自己做的MyApp-->
<application android:name="MyApp"
android:icon="@drawable/icon"
android:label="@string/app_name"
>
<activity android:name=".mainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".otherActivity">
</activity>
</application>
</manifest>
运行的结果:
03-04 16:53:17.295: INFO/guoll(650): InitLabel:Welcome!
03-04 16:53:17.295: INFO/guoll(650): ChangeLabel:Changing!
03-04 16:53:17.426: INFO/guoll(650): OhterActivity receive the Label:Changing!
发表评论
-
android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片)
2013-01-15 20:02 2875http://blog.csdn.net/jj120522 ... -
Maven Android Plugin
2013-01-06 16:20 1598Maven Android Plugin h ... -
解决Android模拟器无法用PC键盘输入与模拟器外部功能添加.
2013-01-06 16:20 1463公司发了PC后重新装了Android开发环境. 但是在模拟器上 ... -
Android Fragment使用
2012-12-20 17:29 872你可以像为View一样, 为fragment指定lay ... -
Android异步处理四:AsyncTask的实现原理
2012-12-14 09:08 998在《Android异步处理二:使用AsyncTask异步 ... -
Android异步处理三:Handler+Looper+MessageQueue深入详解
2012-12-14 09:06 984在《Android异步处理一:使用Thread+Hand ... -
Android异步处理二:使用AsyncTask异步更新UI界面
2012-12-14 09:00 1038在《Android异步处理一:使用Thread+Hand ... -
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
2012-12-14 08:48 1012概述:每个Android应用程序都运行在一个dalvik ... -
Android 中LayoutInflater的使用
2012-12-11 20:11 0大家好我们这一节讲的是LayoutInflater的使用,在实 ... -
邵洋江 android之tabhost讲解
2012-12-11 19:15 0Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之 ... -
android Bitmap用法总结
2012-12-10 13:09 0android Bitmap用法总结 http://ww ... -
Parcelable接口应用
2012-11-30 19:53 0Android中Intent传递对象有两个方法,一个是让 ... -
常用的android弹出对话框
2012-11-09 08:47 0http://blog.csdn.net/chenlei ... -
Android实现推送方式解决方案
2012-11-07 13:44 0转:http://www.cnblogs.com/han ... -
Android 之 下拉框(Spinner)的使用
2012-11-06 15:16 0下拉列表 Spinner。 Spinner的使用,可以极 ... -
android ListView添加事件并获取选中项的值
2012-11-05 11:45 0转:http://www.beijibear.com/?aid ... -
Android 用TextView做菜单的多个onClick事件的处理
2012-11-02 19:23 0TextView控件使用OnClick事件监听的时候,会遇到一 ... -
在ListView中显示网络图片
2012-11-02 08:30 1119最近在做一个天气预报的例子,想在ListView中添加网 ... -
android ListView详解
2012-11-01 09:43 0在android开发中ListView是比较常用的组件, ... -
TabSpec和TabHost实例
2012-10-15 08:44 1578TabSpec与TabHost TabHost相当于 ...
相关推荐
Android用Application设置全局变量以及使用 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型;而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅...
Application设置全局变量以及传值 /** * 重写Application,主要重写里面的onCreate方法,就是创建的时候, * 我们让它初始化一些值,前段时间在javaeye里面看到过一个例子,与此相似, * 我做了些改进。听说外国...
本文实例讲述了Android编程之Application设置全局变量及传值用法。分享给大家供大家参考,具体如下: /** * 重写Application,主要重写里面的onCreate方法,就是创建的时候, * 我们让它初始化一些值,前段时间在...
Android中用Application类实现全局变量
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保存全局变量。
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 类 ...
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 从原生代码中调用...
Android4.0入门之参数传递4种方式: 1.通过Intent方式传参 2.通过系统剪切板传参、需要对象转化成Base64的字符串进行传递 3.通过Application全局对象传值 4.通过Activity中的静态变量传参
摘要:Java源码,Android源码,悬浮窗 android悬浮窗的实现源码,可作为参考的一个例子,用于显示被... 在MyApplication类中:创建全局变量,全局变量一般都比较倾向于创建一个单独的数据类文件,并使用static静态变量。
大家都知道 Android 的 Activity 是存着历史栈的,比如...使用全局变量。对了,第一个想到的就是继承 Application,代码入下: 代码如下:public class AgentApplication extends Application { private List<Activi
Android 在线播放器源码:里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题
一个开源的Android在线音乐播放器...因为里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题 标签:jamendo
这是别人的资源,里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题