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