多个activity之间的数据共享
Activity之间的数据共享问题起初一看并没有那么纠结,原因在于两点,一来两个Activity之间可以通过回传的方式进行数据的共享,而哪怕是多个Activity之间,也可以通过静态类进行数据的共享。今天Leo8573只是介绍一种避免使用静态类的方法,而这种方法也是不求详解,只是记录,以解燃眉之急。
首先,在项目中创建一个新类,继承Applcation。这个类就是我们的数据类,可以理解为平时我们说用的Modle类,换句话说,这个类可以存放一些数据字段,并写上Get和Set方法。
比如在以下代码中,创建一个叫做DataApp的类,继承Applcation,并在DataApp类中写入我们想要共享的数据字段,配以Get和Set方法。
代码示例:
public class DataApp <span style="background-color: rgb(255, 255, 51);">extends Application</span> { private String userName;
private String passWord; public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassWord() {
return passWord;
} public void setPassWord(String passWord) {
this.passWord = passWord;
} }
其次,在项目的AndroidManifest.xml文件中的<application>标签中,加入android:name =".DataApp"属性。
代码示例:
<application
<span style="color:#ff0000;">android:name =".DataApp"</span>
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.leo8573.test.LoginActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
最后就是使用了,在我们想要使用的Activity调用getApplication()方法就可以得到DataApp的对象,然后将要存的字段值通过Set方法存入DataApp中,然后在其它Activity中同样使用getApplication()方法得到DataApp的对象,然后再用Get方法得到刚在其它Activity中存入的数据字段,这样就达到了共享的目的。
代码示例:
//一个Activity中
DataApp dataApp = (DataApp) getApplication();
dataApp.setUserName("Leo8573");
//另一个Activity中
DataApp dataApp = (DataApp) getApplication();
String userName = dataApp.getUserName();
但值得注意的是,用完的数据字段一定要记得回收,即将字段设为null,否则数据将一直存在于DataApp中。
代码示例:
//在一个Activity中,数据用完
DataApp dataApp = (DataApp) getApplication();
dataApp.setUserName(null);
以上就是这种利用Aplication进行Activity之间的数据共享和传输的方法。至于为什么这样做,Leo8573理解是与Application的生命周期有关,一个应用程序在运行期间只会有一个Application对象,这样就可以利用它的这一特点进行数据的共享了。
多个activity之间的数据共享的更多相关文章
- 37.Activity之间的转换以及数据的传递(Intent)学习
Intent简介: 在一个Androi ...
- 解析activity之间数据传递方法的详解
转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下 1 基于消息的通信机制 ...
- 多个Activity之间共享数据的方式
现在要做一个项目,多个Activity之间要共享数据,所以要考虑共享数据的方式. 其实有如下5种方式: 1.基于消息的通信机制 Intent ---bundle ,extra 数据类型有限,比如遇到 ...
- activity之间的数据传递方法
1 基于消息的通信机制 Intent--------boudle,extra 用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int.string等 详细介绍下Intent机制 Inte ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- android第一行代码-3.activity之间的调用跟数据传递
前面两节所有应用都是同一个activity中的,是时候讲activity之间交互的操作了,此后会涉及到intent这个概念,这也算一个新的里程碑开始. 主要内容包括intent的使用,以及activi ...
- Android 数据传递(一) Activity之间的数据传递
bundle Google Bundle类说明 Bundle类是一个key-value对.Activity之间的数据通信可以通过bundle类来实现数据的存储.即将数据放入bundle里面,将Bund ...
- 大叔也说Xamarin~Android篇~Activity之间传递数组
回到目录 我们在开发应用程序时,不可能只使用一个Layout或者一个Activity,比如你个管理系统,要求用户先登陆然后再使用,这时你至少要有两个activity吧,先登陆一个,然后成功后需要跳到别 ...
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
http://blog.csdn.net/cjjky/article/details/6441104 在Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSeri ...
随机推荐
- ansible 基础 简介及 安装
ansible 运维自动化工具. 没有客户端,底层通信依赖于系统软件,linux下基于openssh,win基于powershell
- viewstate的基本用法
转自:http://www.cnblogs.com/ooip/p/4743536.html 在web窗体将控件属性设置为runat=server时,这个控件会被添加一个隐藏属性_ViewState,_ ...
- window.parent ,window.top,window.self 详解及parent和opener的区别
window.parent ,window.top,window.self 详解 在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层fr ...
- filter与servlet的比较
filter与servlet的比较 主要从如下四个方面介绍他们之间的区别: 1.概念. 2.生命周期. 3 ...
- C#使用Json.NET解析Json
本文转载自 http://xiaosheng.me/2016/10/01/article25/ 最近在 C# 项目中需要使用到 Json 格式的数据,我简单上网搜索了一下,基本上有两种操作 Json ...
- 浅谈REST API
浅谈REST API 说明: 本文部分内容根据其它网络文章编写,如有版权问题请及时通知. 背景 发迹于互联网的REST,在国内国外混得可谓是风生水起,如今又进入电信行业的视野,连TMF都将其作为战略项 ...
- 给WPF的MessageBox启用视觉样式
WPF的MessageBox为什么会这样 我的一个同学跟我说:“WPF不是新一代技术吗?怎么连MessageBox都没WinForm 的好看?” 上图是Windows Forms 的MesssageB ...
- 3、jquery_动态创建元素
动态创建元素:$('<b>javier</b>') $('#Button1').append($('<b>javier</b>')) 等价于 $($( ...
- docker私有仓库的搭建
Docker搭建本地私有仓库的详细步骤 Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库.使用私有仓库有许多优点:一.节省网络带宽,针对于每个镜像,不用每个人都 ...
- 前端编码规范 -- html篇
文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html> (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及它的属性,比如 a ...