如何android多activity间共享数据

author author     2023-03-11     772

关键词:

可以使用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中传递变量,通常使用Intent中Bundle添加变量的操作方法。保存参数时:Intentintent=newIntent(); intent.setClass(A.this,B.class);Bundlebundle=newBundle();bundle.putString("name","xiaozhu");intent.putExtras(bundle);startActivit... 查看详情

如何android多activity间共享数据

可以使用Android的数据存储功能来实现多个Activity之间共享数据。Android中数据的存储有五种方式不同的应用及需求,会使用不同的方式去存储数据。1使用SharedPreferences存储数据2文件存储数据3SQLite数据库存储数据4使用ContentProvider... 查看详情

android:单activity多fragment,navigation实现fragment跳转,fragment之间通过viewmodel共享数据(代码片段)

单Activity多Fragment,Navigation实现Fragment跳转,Fragment之间通过ViewModel共享数据1、MainActivity2、HomeFragment,DetailFragment2.1、HomeFragment2.2、DetailFragment3、MyViewModel参考1、MainActivity1、activity_ma 查看详情

java多线程并发09——如何实现线程间与线程内数据共享

本文将为各位带来Java阻塞队列相关只是。关注我的公众号「Java面典」了解更多Java相关知识点。线程间数据共享Java里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要的关注点有两个:可见性和有序性原子性。Ja... 查看详情

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

】androidJava多个类更新activityUI(如何共享数据)【英文标题】:androidJavaMultipleclassesupdateactivityUI(howtosharedata)【发布时间】:2020-10-2018:52:28【问题描述】:我知道这个问题已经被问过好几次了,但我似乎找不到合适的答案或者有... 查看详情

android:单activity多fragment,navigation实现fragment跳转,fragment之间通过viewmodel共享数据(代码片段)

...n.xml<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android... 查看详情

高并发多线程基础之线程间通信与数据共享及其应用(代码片段)

前言本篇文章主要介绍的是java多线程之间如何通信,协同处理任务,以及数据共享,定时任务处理等操作。多线程之间通信的方式在实际开发过程中多个线程同时操作,有两种情况的,数据共享和线程间协作... 查看详情

android进程间通信的几种实现方式

Android进程间通信的几种实现方式主要有4种方式:这4种方式正好对应于android系统中4种应用程序组件:Activity、ContentProvider、Broadcast和Service。主要实现原理:由于应用程序之间不能共享内存。为了在不同应用程序之间交互数据(... 查看详情

多线程共享数据

...,产品数量增加,B线程使用,那么产品数量减少,B线程如何知道产品buf是否为空呢?A线程如何判断产品buf为满?1轮询机制     线程每隔一定时间检查缓冲区,如果有产品就取出,这种机制需要控制好轮询间... 查看详情

android进程间和线程间通信方式

...一个线程死掉就等于整个进程死掉。---------------------一、Android进程间通信方式1.Bundle  由于Activity,Service,Receiver都是可以通过Intent来携带Bundle传输数据的,所以我们可以在一个进程中通过Intent将携带数据的Bundle发送到... 查看详情

如何在两个线程间共享数据?

在两个线程间共享变量即可实现共享。一般来说,共享变量要求变量本身是线程安全的,然后在线程内使用的时候,如 果有对共享变量的复合操作,那么也得保证复合操作的线程安全性。 查看详情

android四大组件-contentprovide

参考技术AAndroid四大组件Activity、Service、BroadcastReceiver、ContentProvide1.什么是ContentProvideContentProvider是Android中提供的专门用于不同应用间数据交互和共享的组件。其本质上是一个标准化的数据管道,它屏蔽了底层的数据管理和服务... 查看详情

如何在 Android Activity 上实现多线程?

】如何在AndroidActivity上实现多线程?【英文标题】:HowdoIimplementmultithreadonanAndroidActivity?【发布时间】:2018-07-2609:23:55【问题描述】:我在我的Activity中创建了一个嵌套类publicclassMissionsActivityextendsActivityclassUpdateMissionsimplementsRunnabl... 查看详情

进程间的通信-队列/管道以及进程间的数据共享和进程池(代码片段)

...的通信  1)队列*****  2)管道***2 进程之间的数据共享*3 进程池*****   进程间通信IPC(Inter-ProcessCommunication)进程的概念:创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递... 查看详情

多activity界面跳转并传递数据

1<?xmlversion="1.0"encoding="utf-8"?>2<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"3xmlns:tools="http://schemas.android.com/tools"4android:id="@+id/activity_main"5an 查看详情

c#wpf多页面间的数据共享(经典)

概述  实现页面间的数据共享有很多方法,比如:①事件的发布订阅 ②委托③ioc容器④静态类等,这节主要通过静态的集合实现数据的添加和获取。实现效果如下:数据在登录页面写入字典,然后在conductor... 查看详情

android进程间通信的几种实现方式(代码片段)

...同应用程序之间交互数据(跨进程通讯),在androidSDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、ContentProvider、Broadcast和Service。其中Activity可以跨进程调用其他... 查看详情

docker容器间中的数据如何共享?

本文和大家分享的是Docker进阶中容器中的数据管理相关知识,希望可以帮助大家更好的学习Docker,一起来看看吧。 先思考一些场景,如果利用Docker创建了一个N个容器,这些容器之间需要数据共享,此时该怎么办?如果我们想在... 查看详情