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

最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来分享下! andr

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

}
}

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/938183.html

(1)
上一篇 2021年11月12日
下一篇 2021年11月12日

精彩推荐