重新创建的活动在返回时返回首页,从API 28开始

时间:2020-06-29 19:03:04

标签: android android-intent launchmode

当我重新创建活动时,观察到从Android Emulator API级别28开始的不良行为。按下后,我进入主屏幕,而不是以前的活动(如API级别27及以下的活动)。

所以情况如下:

class diagram

AndroidManifest.xml中,MainActivity被设置为singleTaskMainActivitySettingsActivity都扩展了BaseActivity

SettingsActivity中,我让用户更改为暗模式或其他语言,然后使用以下方式重新创建活动:

getActivity().recreate();

BaseActivity然后根据(新)首选项重新创建自身(从here开始)。

startActivity(getIntent());
finish();
overridePendingTransition(0, 0);

娱乐正常。在 API级别27 及以下级别,我假设我得到的任务看起来像处的任务,从 API 28 向上的项目,我假定我得到了一项看起来像右侧上的那个:

task expected task actual

但是我也希望有一个看起来像API 28及更高版本的第一个任务。

我发现,在BaseActivity中,我可以添加Intent.FLAG_ACTIVITY_CLEAR_TASK Intent标志来重新创建活动,这会使达到我想要的行为,但是我不明白为什么这实际上会有所帮助,以及如果这是最好的方法,在这里。这里有任何Intent / Task专家吗?

我在这里想念什么?

0 个答案:

没有答案