android不同activity之间共享数据解决方法

龙猫公子2012

龙猫公子2012

2016-02-19 11:32

今天图老师小编要跟大家分享android不同activity之间共享数据解决方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!
最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来分享下!
Android中在不同Activity中传递变量,通常使用Intent中Bundle添加变量的操作方法。
保存参数时:
代码如下:

Intent intent = new Intent();
intent.setClass(A.this, B.class);
Bundle bundle = new Bundle();
bundle.putString("name", "xiaozhu");
intent.putExtras(bundle);
startActivity(intent);

读取参数:
代码如下:

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
[java] view plaincopy
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");

不过在多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。
如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。
新建一个类,继承自Application
代码如下:

class MyApp extends Application {
private String myState;
public String getState() {
return myState;
}
public void setState(String s) {
myState = s;
}
}

在AndroidManifest.xml的application加个name属性就可以了,如下面所示:
代码如下:

application android:name=".MyApp" android:icon="@drawable/icon" android:label="@string/app_name"

使用时:
代码如下:

class Blah extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
展开更多 50%)
分享

猜你喜欢

android不同activity之间共享数据解决方法

编程语言 网络编程
android不同activity之间共享数据解决方法

Android开发 旋转屏幕导致Activity重建解决方法

编程语言 网络编程
Android开发 旋转屏幕导致Activity重建解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Android ListView数据绑定显示的三种解决方法

编程语言 网络编程
Android ListView数据绑定显示的三种解决方法

android横竖屏切换不重启activity解决方案

编程语言 网络编程
android横竖屏切换不重启activity解决方案

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

不同数据库之间转换

编程语言 网络编程
不同数据库之间转换

更新android SDK 失败的解决方法

编程语言 网络编程
更新android SDK 失败的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

查看Win8隐藏文件的另类技巧

查看Win8隐藏文件的另类技巧

Win7下播放视频文件锯齿现象的解决方法

Win7下播放视频文件锯齿现象的解决方法
下拉加载更多内容 ↓