V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
stdying
V2EX  ›  Android

Fragment/Activity 数据保存和传输

  •  
  •   stdying · 2016-04-13 20:28:45 +08:00 · 10170 次点击
    这是一个创建于 3171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    APP 有个流程 如从 Activity A -->B -->C-->D
    每个 Activity 都会产生数据,在 Activity D 汇总处理,
    问题是 Activity A , B,C 产生的数据是依次往后传递还是说临时保存在 Activity D 在获取
    19 条回复    2016-04-15 14:36:14 +08:00
    zhgg0
        1
    zhgg0  
       2016-04-13 20:42:49 +08:00
    依次传递
    anthonyeef
        2
    anthonyeef  
       2016-04-13 20:51:29 +08:00 via Android
    可以有蛮多方法的吧。真的太懒可以用 Eventbus 之类,在不同时候发布事件。
    zhangdawei
        3
    zhangdawei  
       2016-04-13 20:52:27 +08:00
    简单就用 eventbus
    palytoxin
        4
    palytoxin  
       2016-04-13 20:59:25 +08:00
    后台开个 service 用 IPC 呗。。。
    lhh
        5
    lhh  
       2016-04-13 21:19:55 +08:00
    以我现在的水平,我就只是在 intent 里 putextra 。。。
    limengwei
        6
    limengwei  
       2016-04-14 08:38:46 +08:00 via Android
    eventbus + 1
    stdying
        7
    stdying  
    OP
       2016-04-14 10:31:15 +08:00
    @zhgg0 个别 activity 传递的数据比较多,如 list 数据
    @anthonyeef 可以说说有哪些吗
    @zhangdawei 可用
    @palytoxin 不是很理解,可否简单细说一下
    @lhh 我用过,总觉有点麻烦
    @limengwei eventbus 数据网哪传, activity 是一个一个跳转
    saberpowermo
        8
    saberpowermo  
       2016-04-14 10:59:39 +08:00
    eventbus 并不是最好的选择.
    eventbus 让代码变的很松散.
    个人建议 老老实实 用 Bundle 传递.
    saberpowermo
        9
    saberpowermo  
       2016-04-14 11:00:25 +08:00
    如果传递的东西太多 可以用全局变量去存储啊 大家都去读取就好了啊
    比如放在 XxooApplication 中啊
    saberpowermo
        10
    saberpowermo  
       2016-04-14 11:01:29 +08:00
    不过如果在公共的 static 集合中存储东西的时候 一定要慎重 管理好 每一个实例的生命周期
    时刻小心内存泄漏
    stdying
        11
    stdying  
    OP
       2016-04-14 11:21:24 +08:00
    @saberpowermo 还是 bundle 更好些,便于理解;还有就是我打算用 sqlite 存储,不过想想有点大材小用
    saberpowermo
        12
    saberpowermo  
       2016-04-14 11:38:02 +08:00
    @stdying 。。别闹 sqlite 不是这样用的
    stdying
        13
    stdying  
    OP
       2016-04-14 14:07:45 +08:00
    @saberpowermo sqlite 你们主要用来存储什么信息
    congshuxiao
        14
    congshuxiao  
       2016-04-14 15:16:03 +08:00
    @stdying 数据库是用来做数据持久化的,这种即时保存的需求不用
    palytoxin
        15
    palytoxin  
       2016-04-14 15:40:11 +08:00 via iPhone
    @stdying 我当时想后台开个服务和 act 做进程间通信,太麻烦。数据库就挺不错,中间 fc 了数据也能找回来。也可以试试 http://developer.android.com/guide/topics/data/data-storage.html#pref
    saberpowermo
        16
    saberpowermo  
       2016-04-14 17:48:21 +08:00
    @stdying 你随便打开 1 个新闻类的 app.
    然后退出
    然后关闭网络 进入... 你就知道 sqlite 存储的是什么类型的数据了。。
    stdying
        17
    stdying  
    OP
       2016-04-14 19:48:23 +08:00
    @saberpowermo 我一直以为新闻类的是使用文件缓存这个
    wanttofly
        18
    wanttofly  
       2016-04-14 21:06:59 +08:00
    用 Bundle 有任何疑问吗?
    stdying
        19
    stdying  
    OP
       2016-04-15 14:36:14 +08:00
    @wanttofly 我也用 bundle ,每次都要传递
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3221 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:44 · PVG 20:44 · LAX 04:44 · JFK 07:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.