这个效果就是使用静态变量是一样的,但是其更符合android的架构体系。
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(); ... } }
二、全局提示信息、对话框弹出:
public class BaseApp extends Application { public Context context; private Handler handler; @Override public void onCreate() { super.onCreate(); context = getBaseContext(); handler = new Handler(); } public void showToast(final int resId) { handler.post(new Runnable() { @Override public void run() { Toast.makeText(context, resId, Toast.LENGTH_SHORT).show(); } }); } public void showToast(final String text) { handler.post(new Runnable() { @Override public void run() { Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); } }); } }
AlertDialog.Builder(Context context)中的context不能使用getApplicationContext()获得的Context,而必须使用Activity的Context对象,因为只有一个Activity才能添加一个窗体。
三、其他
貌似还不够妙~!期待补充!!!
补充:
application context的生命周期是贯穿整个进程,Activity的context只是伴随Activity的生命周期;