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

2016-02-19 11:32 12 1 收藏

今天图老师小编要跟大家分享android不同activity之间共享数据解决方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

最近做局域网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();
...
}
}

来源:http://www.tulaoshi.com/n/20160219/1597821.html

延伸阅读
在Android 中有一种服务说是服务其实倒不如说是一个接口,这个接口名为:Android Interface Definition Language ,这个接口可提供跨进程访问服务,英文缩写为:AIDL。 此种服务的好处在于,多个应用程序之间建立共同的服务机制,通过AIDL在不同应用程序之间达到数据的共享和数据相互操作,下面将通过一个DEMO 演示AIDL 是如何为应用程序之间提...
标签: 电脑入门
重新联接一下打印服务器就可以了,步聚如下: 打印机共享具体步骤如下: 1.配置打印机主机 首先我们要在主机上配置打印机。我们暂且称直接连接打印机的电脑为主机,而局域网内其他需要和主机共享打印的电脑称为客户机。 第一步: 将打印机连接至主机,打开打印机电源,通过主机的控制面板进入到打印机和传真文件夹,在空白处单击鼠标右...
在做android开发时有这样一个需求,我们需要把地图的zoomcontroller放置于地图的右下角。 默认情况下,我们在eclipse中拖动控件到editor中,控件的位置将位于整个屏幕的左上角。可以使用 android:layout_gravity、android:gravity和android:width三个属性值,实现控件的九宫格定位。 Xml代码 代码如下: ZoomControls android...
有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity 设计: 有两个应用界面MainActivity和BActivity,以及用于程序的通用类ExitUtil 步骤: 1、添加一个类,名为ExitUtil 代码如下: public class ExitUtil {  public static final int EXIT_APPLICATION = 0x0001;  private Context mC...
标签: 电脑入门
在Windows XP中,往往会因各种原因导致无法共享打印机,这个时候你是不是束手无策了?解决问题需要对症下药,让我们来了解一下在 Windows XP 中共享打印机时最容易出现的种种问题以及解决办法。 现象一:网上邻居无法正常浏览 在Windows XP中共享打印机,首先要做的并不是直接在工作站中安装网络打印机,而是应该先看看网上邻居中的查看工作组...

经验教程

487

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部