问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android如何在Activity和Service之间传递数据

发布网友 发布时间:2022-04-21 23:01

我来回答

3个回答

热心网友 时间:2024-02-20 07:08

1、原始数据类型:
在Activity/Servier之间传递临时性的原始数据,可以使用Intent的putExtras方法来传递数据。若传递的数据需要长久保存,则使用SharedPreference类来完成。
2、传递对象。
当在Activity/Servier之间传递不需要长久保存的对象时,可以使用以下几种途径:
(1)通过Application类,每个Android应用程序都有一个Application类。当你在程序的AndroidManifest.xml中给Application设定一个名字时,你的程序中就必须有一个Application的子类。这个Application子类会被Android自动实例化,并且是一个全家性的类,它的生命周期和程序的生命周期相同,你可以把一些全局性的对象保存在Application类中。Application类可以通过getApplication()获得。
(2 通过HashMap of WeakReferences传递对象。当一个Activity需要向另外一个Activity传递对象时,可以使用一个关键字把对象存在一个HashMap中,并把这个关键字通过Internt的Extras发给目标Activity,目标Activity接到该关键字后使用该关键字把对象冲HashMap中取出。

热心网友 时间:2024-02-20 07:09

一种是像楼主所说的,在Activity里注册一个BroadcastReceiver,Service完成某个任务就可以发一个广播,接收器收到广播后通知activity做相应的操作。另一种是,使用bindService来关联Service和Application,应用.apk里的所有组件一般情况都运行在同一个进程中,所以不需要用到IPC,bindService成功后,Service的Client可以得到Service返回的一个iBinder引用,具体的参见Service的文档及onBind的例子,这样Service的引用就可以通过返回的iBinder对象得到,如public class LocalService extends Service { // This is the object that receives interactions from clients. See // RemoteService for a more complete example. private final IBinder mBinder = new LocalBinder(); public class LocalBinder extends Binder { LocalService getService() { return LocalService.this; } } @Override public IBinder onBind(Intent intent) { return mBinder; }}之后Client通过这个iBinder对象得到Service对象引用之后,可以直接和Service通讯,比如读取Service中的值或是调用Service的方法。]

热心网友 时间:2024-02-20 07:09

很多办法,一种是通过BroadCast,由Service发数据,Activity接收,这种比较简单。另外一种,是在Activity中通过bindService获取到Service对象,直接调用Service方法获取想要的数据,这种方法如果是同一个应用中也是很方便的。还有一种就是进程间通信,使用aidl,其实也很简单,固定的几步实现。]
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 马铃薯粉和淀粉有什么不同? 历史上哪些君王父亲是昏君儿子是明君 三星s7丢失了怎么定位 怎么查小学生的学籍号 五年级下册数学口算题(人教版第二单元) 说明service和activity的区别 为什么说北宋昏君多,南宋庸主多? 淀粉就是生粉吗? 五年级简单数学题。答完给悬赏50分 为什么说北宋昏君多,南宋庸主多呢? 怎么查小学生学籍编号查小学生学籍号 Android:实现Activity与Service的绑定,IBinder的t... 宋太宗和宋真宗究竟算不算昏君 小学五年级数学奥数题(带答案)2页 Android-service和Activity通讯是Handler好还是广播好 三星S7手机掉了怎么定位如何打开定位 android activity,intent,service是什么关系? 备忘录在哪个文件夹小米2s 华为手机怎样定位三星s7 小米3备份在电脑里的备忘录怎么查看,小米手机已 淀粉和生粉到底有什么区别 海尓冰箱冷冻室结冰导致冷藏室不制冷是怎么回事 activity和service是否在同一个进程和线程中 昏庸无能的君王有哪些? 目前手机屏幕比较好的手机有哪些 上夌无霜冰箱冷冻室结冰冷藏室不冷是什么原因 三星S7手机掉了怎么定位怎么打开定位 android开发,context,service,intent,activity的区... 三星S7手机丢失了被偷了怎么找回如何定位 为何说清朝无昏君,宋朝无暴君? 三星s7手机丢失了怎么找回 刚刚被盗三星s7如何定位 宋朝、清朝皇帝都有哪些,并指出谁是昏军君,谁是... 我是学中文的,汉语言文学专业,请问一下大家:信... 手机丢失了三星s7怎么定位找回 宋朝有几个明君,昏君,暴君? 三星S7edge手机怎么定位刚丢想通过定位找到手机 三星S7手机被偷了怎么定位找到 为什么说北宋多昏君,南宋多庸主 6.1屏幕的手机有哪些 冰箱保鲜层不冷,但速冻层还结冰,是什么原因?修...