我已经构建了一个APK,其活动在不同的设备上表现不同,我无法弄清楚原因。活动未定义launchMode,启动活动是第三方文件浏览器,电子邮件客户端,谷歌驱动器等。
在我的三星Galaxy S5手机设备(Android 4.4.2)上:
当我启动我的活动时,它会被推送到当前任务的堆栈。换句话说,它具有默认的预期行为。
在我的三星Galaxy Note 3(Android 4.3)平板设备上:
当我启动我的活动时,它总是被推送到只包含我的活动实例的任务堆栈(如果存在,它会启动一个新的任务堆栈,如果没有)。 从我的活动中点击后退按钮会弹出堆栈中的活动,然后返回到我的活动的其他实例,而不是启动我的活动。
我想要的是什么:
我不希望单个任务或单个实例行为,只是默认的Android行为。设备上安装的其他活动/查看器似乎不会出现此行为。
observed launch behavior by android version.
-------------------------------------------------------
|Android Version |Behavior |
-------------------------------------------------------
|4.4.2 |Default |
|4.3 |SingleTask |
|4.2.2 |Default |
-------------------------------------------------------
答案 0 :(得分:0)
我们找到了问题的根源。看来Note 3和Galaxy S5上安装了不同的文件浏览器或不同版本的文件浏览器。当我在笔记和S5上安装完全相同的资源管理器APK时,他们最终表现相同。
似乎是发射器决定使用FLAG_ACTIVITY_NEW_TASK标志或类似的东西修改ACTION_VIEW意图。