如何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多Fragment,Navigation实现Fragment跳转,Fragment之间通过ViewModel共享数据
Android:单Activity多Fragment,Navigation实现Fragment跳转,Fragment之间通过ViewModel共享数据