gpt4 book ai didi

android - 新版 Android 操作系统(4.4 及更高版本)中的“FLAG_ACTIVITY_REORDER_TO_FRONT”

转载 作者:行者123 更新时间:2023-11-29 14:31:06 24 4
gpt4 key购买 nike

最近,我遇到了重新启动已经在后台堆栈中的 Activity 的问题。国旗FLAG_ACTIVITY_REORDER_TO_FRONT是管理此问题的最佳解决方案。但在 Android 4.4 及更高版本中它运行不佳(有时 Activity View 会卡住或应用程序自身最小化,菜单不会膨胀以重新启动 Activity 或键盘不允许在文本区域输入内容)但在以前的版本这个标志重新启动的 Activity ,并从返回堆栈中删除。请查看this link了解更多详情。

最佳答案

在 Android 4.4 及更高版本中,当在 Activity 创建中使用 FLAG_ACTIVITY_REORDER_TO_FRONT 标志时,应用程序会出现异常。主要问题是,有时 Activity 会卡住状态,当导航到另一个 Activity 时,键盘不能正常工作(显示键盘但用户无法在文本区域输入任何内容),没有展开菜单,或者应用程序导航以最小化状态。

我认为这个问题与后台堆栈和 Activity 流程有关,当启动器 Activity (在我的应用程序中,SplashScreenActivity 是一个启动器)完成时,子 Activity 在使用 FLAG_ACTIVITY_REORDER_TO_FRONT 重新启动之前的 Activity。因此,在这种情况下,不要终止启动器或父 Activity 并使用 startActivityForResult(childAcivityIntent, requestcode) 启动下一个 Activity ,并在调用 onActivityResult 时终止父 Activity 。还要记住不要在子 Activity 和父 Activity 中使用 singleInstancesingleTop 标志。

private void onStartNextActivity() {
Intent mIntent= new Intent(SplashscreenActivity.this, ChildActivity.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityForResult(mIntent, 1111);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1111)
finish();
}

关于android - 新版 Android 操作系统(4.4 及更高版本)中的“FLAG_ACTIVITY_REORDER_TO_FRONT”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31316451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com