如何android多Activity间共享数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何android多Activity间共享数据相关的知识,希望对你有一定的参考价值。

可以使用android的数据存储功能来实现多个Activity之间共享数据。
Android中数据的存储有五种方式不同的应用及需求,会使用不同的方式去存储数据。
1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据
不同的业务逻辑,或者需求,用不同的实现方式,以下是这几中数据存储方式的说明用及法:
第一种: 使用SharedPreferences存储数据
它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
其存储位置在/data/data/< >/shared_prefs目录下。

第二种: 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。文件可用来存放大量数据,如文本、图片、音频等。
默认位置:/data/data/< >/files/***.***。

第三种: SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, php, Python)都使用了 SQLite。
数据库存储在 data/< 项目文件夹 >/databases/ 下。

第四种: 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍。

第五种 :网络存储数据 也就是说将数据保存在服务器,android上只需要通过httpclient发起一个请求,向服务器获取数据即可。
参考技术A --方法是创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。

class MyApp extends Application

private String myState;

public String getState()
return myState;

public void setState(String s)
myState = s;



class Blah extends Activity

@Override
public void onCreate(Bundle b)
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...

本回答被提问者和网友采纳

以上是关于如何android多Activity间共享数据的主要内容,如果未能解决你的问题,请参考以下文章

如何android多Activity间共享数据

如何android多Activity间共享数据

如何android多Activity间共享数据

Android:单Activity多Fragment,Navigation实现Fragment跳转,Fragment之间通过ViewModel共享数据

Android:单Activity多Fragment,Navigation实现Fragment跳转,Fragment之间通过ViewModel共享数据

android Java 多个类更新activity UI(如何共享数据)