在多個Activity之間使用Application實現數據共享,Application對同一個應用程序來說是唯一的:
首先我們需要自定義一個類App,繼承自Application。當然也需要在AndroidManifest。xml中定義application的name為App。
App中定義一些變量,需要共享的數據:
public class App extends Application {
private String textData = "default";
public void setTextData(String textData) {
this.textData = textData;
}
public String getTextData() {
return textData;
}
}
假設我們在MainActivity和Main2中實現數據共享;
安卓里面可以定義兩個啟動程序的應用圖標,都可以作為應用程序的入口,這樣數據共享也能實現。
在Manifest中添加如下設置:
<activity android:name=".MainActivity"
android:label="Main1">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2"
android:label="Main2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這樣就會有兩個啟動圖標Main1和Main2,一個啟動的是MainActivity,另一個啟動的是Main2.
通過getApplicationContext()來獲取這個全局的Application。
((App)getApplicationContext()).setTextData(editText.getText().toString());寫入數據
((App)getApplicationContext()).getTextData();獲取數據