在多个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();获取数据
网友评论