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

这是华为特有的问题? TaskStackBuilder

  •  
  •   nnegier · 2020-02-16 21:28:21 +08:00 · 10106 次点击
    这是一个创建于 1760 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TaskStackBuilder 可以实现从通知跳转到 Activity 时按返回可以跳转到 AndroidManifest.xml 中 parentActivityName 属性所指定的 Activity,而不是回到 Home 桌面。

    但我在华为手机上测试没成功(机型:Mate 10,Android 9.0 ),直接回到了桌面,但在我的另一台低版本酷派手机 Android 4.4 上测试成功,所以我想这是不是华为手机特有的问题,困扰了很久,特有此疑问。

    我的代码

    Intent resultIntent = new Intent(context, Main2Activity.class);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addNextIntentWithParentStack(resultIntent);
    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
    
    <activity
                android:name=".Main2Activity"
                android:parentActivityName=".MainActivity"/>
    

    直接从官网拷贝修改的,所以我想代码没有问题。

    所以这是华为的 bug ?

    第 1 条附言  ·  2020-02-17 09:22:16 +08:00
    Android 10 模拟器测试通过,没有回到桌面 Home。所以这是华为的 bug?
    10 条回复    2020-02-18 13:07:06 +08:00
    cxtrinityy
        1
    cxtrinityy  
       2020-02-16 21:41:48 +08:00 via Android
    厂商改的系统你永远不知道下一脚会踩到哪个坑😉
    Levi233
        2
    Levi233  
       2020-02-16 22:23:56 +08:00
    你 android 版本也差太多了吧??好歹控制变量测试一下啊
    chinawrj
        3
    chinawrj  
       2020-02-16 23:13:01 +08:00
    你就问题模拟器上 Android 9.0 试过没?没试过就不要发帖了
    Shoukaku
        4
    Shoukaku  
       2020-02-17 00:52:53 +08:00
    这系列 API 好像在 Android 5.1 就被弃用了,建议进 AVD 试一下。或者你给 MainActivity 打印一下 log 看看。
    如果堆栈里没有父 Activity 的实例,按返回键也会回到 /产生一个父 Activity 吗?我不太了解,只知道父 Activity 会在返回控件中用到。
    afpro
        5
    afpro  
       2020-02-17 08:03:29 +08:00
    这样明显的差异 理论上不会出现在华为这种大厂 因为跑不过 aosp 的自动化测试 跑不过自动化测试 给不出报告 Google 就不能允许这个版本的系统发布
    nnegier
        6
    nnegier  
    OP
       2020-02-17 09:27:36 +08:00 via Android
    @afpro 感觉你是能回答问题的人。android10 我刚刚也测试了,在模拟器上成功。TaskStackBuilder 没有标过时,说明就是能用的,只是在华为上不过。我怕以为是自己的问题,所以想确认一下,依稀记得,在半年或更久以前就遇到这事,让我很气馁。
    hhhsuan
        7
    hhhsuan  
       2020-02-17 09:49:04 +08:00
    肯定是华为的锅啊
    bagel
        8
    bagel  
       2020-02-17 10:11:13 +08:00
    我没验证过楼主这个问题。但是根据经验,国内厂商出现类似这些问题很常见。Android 所谓的 Compatibility Test Suite 能覆盖的 case 还是不够。是 Google 缺乏技术能力吗?并不是。根源在于它出于商业利益的考量,缺乏足够动力对厂商魔改做严格限制。

    开发任何一个稍微利用一点原生特性的功能,基本都会遇到国产魔改 ROM 的 Bug。举几个我自己的产品遇到的例子:

    锤子手机上展开通知根本无法展开,相关 Notification API 等于作废。你能相信存在这样明显的问题居然能通过 CTS ?然而它就是通过了。小米手机某个版本横屏下,从 onTouchEvent 里获得的 event 的 x 坐标居然是固定从手机头部这一侧算起,而不是从实际握持方向的左侧算起。我遇到的华为、小米这两家的魔改 Bug 是最多的,有的能想办法绕过,绕不过的只能提示用户。
    aLazarus
        9
    aLazarus  
       2020-02-17 21:18:47 +08:00
    @bagel #8 原来锤子无法展开通知是 feature ?这系统在通知栏里音乐都没法上一曲(无法展开),刚开始我还以为是我不会用
    keymao
        10
    keymao  
       2020-02-18 13:07:06 +08:00
    联系华为,报告问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5118 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:36 · PVG 15:36 · LAX 23:36 · JFK 02:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.