创建一个属于你自己的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">