求教 Android Activity 小知识 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiaming1992
V2EX    Android

求教 Android Activity 小知识

  •  
  •   jiaming1992 2017-09-19 15:21:40 +08:00 12241 次点击
    这是一个创建于 2951 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果在一个 singleTop 或者 singleInstance 的 ActivityA 中通过 startActivityForResult()方法来启动另一个 ActivityB,那么系统将直接返回 Activity.Result_CANCELED 而不会再去等待返回,这是由于系统在 Framework 层做了对这两种启动模式的制,因为 Android 开发者认为,不同 Task 之间默认是不能传递数据的,如果一定要传递,那则只能通过 Intent 来绑定数据 ----《 Android 群英传》

    新人表示有点困惑,这句话在自己写的 Demo 中测试怎么没有效果呢?
    13 条回复    2017-10-20 09:25:25 +08:00
    wl9739
        1
    wl9739  
       2017-09-19 15:34:53 +08:00 via Android
    Android 5.0 以上和 Android 5.0 以下效果不同
    jiaming1992
        2
    jiaming1992  
    OP
       2017-09-19 16:38:19 +08:00
    @wl9739 我把 sdk 换成 19 还是一样效果呢 0_0
    jiaming1992
        3
    jiaming1992  
    OP
       2017-09-19 16:49:11 +08:00
    @wl9739 搞明白了,谢谢
    shenwu35
        4
    shenwu35  
       2017-09-19 16:52:45 +08:00   3
    @jiaming1992 跟其他论坛一样的风格。搞明白后不说原因的。然后其他人就开始问,怎么搞明白的。然后就是死活不说的玩消失。
    allenlee7c9
        5
    allenlee7c9  
       2017-09-19 17:22:52 +08:00 via Android
    @shenwu35 楼主还在消失中
    yufz
        6
    yufz  
       2017-09-19 17:36:40 +08:00
    楼主写错代码了而已,他的两个 Activity 还在同一个 Task 里面,所以没有效果
    zhoucan007
        7
    zhoucan007  
       2017-09-19 17:42:27 +08:00
    注意一下,singleTop 时,两个 Activity 还是在同一个 Task 里面的。
    xzg1993
        8
    xzg1993  
       2017-09-19 17:59:33 +08:00
    @jiaming1992 你这样以后就不要来问东西了,说完了之后就消失了?
    jiaming1992
        9
    jiaming1992  
    OP
       2017-09-19 18:12:12 +08:00
    @xzg1993 哈哈 这是论坛吧 也不是 qq 群 不能隔个五分钟刷新一次吧
    jiaming1992
        10
    jiaming1992  
    OP
       2017-09-19 18:14:27 +08:00
    我是把 tagetsdk 换成 19,但是,跑在了 25 的模拟器上 所以没有效果。。 但是换成 19 的模拟器 就出现上面说的情况了,话说 Android API 文档里也没说这个。。
    jiaming1992
        11
    jiaming1992  
    OP
       2017-09-19 18:16:25 +08:00
    @shenwu35 受教了,以后肯定搞明白了再把解决方案说一遍。
    Poarry
        12
    Poarry  
       2017-10-19 18:25:09 +08:00
    <p>Note that this method should only be used with Intent protocols
    * that are defined to return a result. In other protocols (such as
    * {@link Intent#ACTION_MAIN} or {@link Intent#ACTION_VIEW}), you may
    * not get the result when you expect. For example, if the activity you
    * are launching uses the singleTask launch mode, it will not run in your
    * task and thus you will immediately receive a cancel result.
    *

    ------来自源码
    jiaming1992
        13
    jiaming1992  
    OP
       2017-10-20 09:25:25 +08:00
    @Poarry 亲测实际只对 singleTask,singleInstance 有影响,所以书中 singleTop 写的可能有误,而且源码也没说 5.0 以上 5.0 以下实现不同 0.0
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2502 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 11:04 PVG 19:04 LAX 04:04 JFK 07:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86