安卓开发的常见问题之全局变量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">
相关推荐:
键盘区域外才是屏幕的边缘,定义布局文件时使用:android:gravity="bottom"的话就会被挤到上部。 解决办法: 在此工程的androidMainfest.xml文件中对应的Activity中写入 android:windowSoftInputMode="adju …
Activity,Service等组件有些是对外开放的(manifest.xml 中 export为true或定义的intent-filter的组件是可导出组件),当这些组件传递的参数未做校验时,这些参数可能导致APP 拒绝服务。 请严格校验输入参 …
当你的控制台上找不到错误或者看不懂错误的时候,点 Project-->clean,清空下项目就会没问题。
存在内容被替换的风险,openFileOutput禁止使用MODE_WORLD_READABLE和MODE_WORLD_WRITABLE。 1. 避免使用MODE_WORLD_WRITEABLE和MODE_WORLD_READABLE模式创建进程间通信的内部存储(Internal Storage)文件, …
在AndroidMainifest.xml中增加允许使用网络选项(在</application>结束标签之后>): <uses-permission android:name="android.permission.INTERNET" />
手机扫一扫即可带走我!