安卓开发的常见问题之全局变量Application Context

创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。

下面看一下Demo:

class MyApp extends Application {

private String myState;

public String getState(){

return myState;

}

public void setState(String s){

myState = s;

}

}

class Blah extends Activity {

@Override

public void onCreate(Bundle b){

...

MyApp appState = ((MyApp)getApplicationContext());

String state = appState.getState();

...

}

}

这个效果就是使用静态变量是一样的,但是其更符合android的架构体系。 使用这种方法的话需要在AndroidManifest.xml中配置一下:

<application android:name=".MyApp"

android:icon="@drawable/icon"

android:label="@string/app_name">
相关推荐:
GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。 要实现拨号,用手机?当然不行! 更简单,三步: 1.打开终端 2.连接: telnet localhost 5554(5554是你打开模拟器后上 …
所谓的粘性广播就是指发出的广播内容会一直在系统滞留,如果有敏感信息,会被其他恶意应用获取。 开发中尽量不要使用sendStickyBroadcast方法,或者使用后调用removeStickyBroadcast()删除。
安卓手机有一些软件是在应用列表无法显示的,但它却可以运行,也可以通过其它方法启动,就是根据这个原理实现的。 教程: 1、反编译要编辑的软件,找到AndroidManifest.xml; 2、用记事本打开,找到以下字 …
忘记加载activity的layout文件:setContentView(R.layout.main);
在manifest.xml中定义Debuggable项,如果该项被打开,app存在被恶意程序调试的风险,可能导致泄漏敏感信息泄漏等问题。 显示的设置manifest的debuggable标志为false
拿起手机扫一扫即可带走我!