这是华为特有的问题? TaskStackBuilder

2020-02-16 21:28:21 +08:00
 nnegier

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 ?

5795 次点击
所在节点    Android
10 条回复
cxtrinityy
2020-02-16 21:41:48 +08:00
厂商改的系统你永远不知道下一脚会踩到哪个坑😉
Levi233
2020-02-16 22:23:56 +08:00
你 android 版本也差太多了吧??好歹控制变量测试一下啊
chinawrj
2020-02-16 23:13:01 +08:00
你就问题模拟器上 Android 9.0 试过没?没试过就不要发帖了
Shoukaku
2020-02-17 00:52:53 +08:00
这系列 API 好像在 Android 5.1 就被弃用了,建议进 AVD 试一下。或者你给 MainActivity 打印一下 log 看看。
如果堆栈里没有父 Activity 的实例,按返回键也会回到 /产生一个父 Activity 吗?我不太了解,只知道父 Activity 会在返回控件中用到。
afpro
2020-02-17 08:03:29 +08:00
这样明显的差异 理论上不会出现在华为这种大厂 因为跑不过 aosp 的自动化测试 跑不过自动化测试 给不出报告 Google 就不能允许这个版本的系统发布
nnegier
2020-02-17 09:27:36 +08:00
@afpro 感觉你是能回答问题的人。android10 我刚刚也测试了,在模拟器上成功。TaskStackBuilder 没有标过时,说明就是能用的,只是在华为上不过。我怕以为是自己的问题,所以想确认一下,依稀记得,在半年或更久以前就遇到这事,让我很气馁。
hhhsuan
2020-02-17 09:49:04 +08:00
肯定是华为的锅啊
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
2020-02-17 21:18:47 +08:00
@bagel #8 原来锤子无法展开通知是 feature ?这系统在通知栏里音乐都没法上一曲(无法展开),刚开始我还以为是我不会用
keymao
2020-02-18 13:07:06 +08:00
联系华为,报告问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/645087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX