編輯:高級開發
打開manifest文件,會看到有一個application配置標簽,這就是有關application的使用了。那究竟application有什麼用處呢?來看看SDK中是如何描述的:
Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your androidManifest.XML's < application> tag, which will cause that class to be instantiated for you when the process for your application/package is created.
就是說application是用來保存全局變量的,並且是在package創建的時候就跟著存在了。所以當我們需要創建全局變量的時候,不需要再像 J2SE那樣需要創建public權限的static變量,而直接在application中去實現。只需要調用Context的 getApplicationContext或者Activity的getApplication方法來獲得一個application對象,再做出相應的處理。
因小工程中涉及到的文件比較多,這裡就貼代碼撒。
application文件:
Java代碼
1. public class TestApplication extends Application {
2.
3. private int curIndex;
4.
5. public int getCurIndex() {
6. return curIndex;
7. }
8.
9. public void setCurIndex(int curIndex) {
10. this.curIndex = curIndex;
11. }
12.
13. @Override
14. public void onCreate() {
15. super.onCreate();
16. }
17.
18. @Override
19. public void onTerminate() {
20. super.onTerminate();
21. }
22.
23. }
public class TestApplication extends Application {
private int curIndex;
public int getCurIndex() {
return curIndex;
}
public void setCurIndex(int curIndex) {
this.curIndex = curIndex;
接上頁
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onTerminate() {
super.onTerminate();
}
}
application中有一個curIndex和setter getter方法。
第一個acitivty中對application進行的操作:
Java代碼
1. TestApplication application = (TestApplication) this.getApplication();
2. Log.i("data", ""+application.getCurIndex());
3. application.setCurIndex(5);
TestApplication application = (TestApplication) this.getApplication();
Log.i("data", ""+application.getCurIndex());
application.setCurIndex(5);
第二個Activity:
Java代碼
1. TestApplication application = (TestApplication)this.getApplication();
2. Log.i("data", ""+application.getCurIndex());
3. application.setCurIndex(6);
TestApplication application = (TestApplication)this.getApplication();
Log.i("data", ""+application.getCurIndex());
application.setCurIndex(6);
第三個Activity:
Java代碼
1. final TestApplication application = (TestApplication) this.getApplication();
2. Log.i("data", ""+application.getCurIndex());
final TestApplication application = (TestApplication) this.getApplication();
Log.i("data", ""+application.getCurIndex());
在運行過程中,每一次都kill掉對應的Activity,再進入下一個Activity。運行的結果如下:
< !--StartFragment -->