- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近,我遇到了重新启动已经在后台堆栈中的 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 中使用 singleInstance
或 singleTop
标志。
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/
我有一个带有项目列表的 FragmentActivity,当应用程序在后台运行时,可以推送到该项目列表。 发生这种情况时,我想创建一个状态栏通知并提醒用户更新。 当用户单击通知时, Activity
我遇到了一个关于 FLAG_ACTIVITY_REORDER_TO_FRONT 的奇怪问题。我有 2 个 Activity ,A 和 B。A 有一个按钮可以移动到 B,B 有一个按钮可以移动到 A。我
Activity A使用startActivityForResult启动B,B使用startActivity启动C。之后, Activity 堆栈为 A B C。 现在假设,C 使用 FLAG_ACT
我正在尝试从服务中调用一个 Activity ( Activity A),我想要发生的是检查堆栈上是否已经存在 A 的实例,如果有,将其带到堆栈的顶部(并且触发 onNewIntent() 方法),而
我现在正在创建如下两个 Activity ,当单击 MainActivity 中的按钮时它显示 SecondActivity,单击 SecondActivity 中的按钮时正常显示 MainActiv
我有 2 个 Activity (A 和 B),它们有 2 个按钮可以在它们之间切换。 一个oncreate B oncreate oncreate 简历 我想做的是在将 Intent 从 B 发送到
我有一些 Activity :A、B、C、D ...在每个 Activity 上,它都有启动其他 Activity 的按钮。所以: A可以启动B、C、D; B可以启动A、C、D; ... 我不想创建这
假设当前任务栈有4个Activity实例A0、A1、B0、C0,C0在栈顶。 A0、A1是Activity A的实例,B0是Activity B的实例,C0是Activity C0的实例。 现在 C0
我有两个屏幕,A 和 B。屏幕 A 有一个启动 Activity B 的按钮,屏幕 B 有一个启动 Activity A 的按钮。 预期的行为是,如果 Activity 在后台堆栈中可用,则应将其重新
我有一个半透明主题的 Activity : android:theme="@android:style/Theme.Translucent.NoTitleBar" 这个问题也可以通过这个主题重现:
在我的游戏中,当用户决定将屏幕从消息屏幕切换到个人资料屏幕时,我想确保用户可以切换屏幕并能够保持之前的 Activity 。 所以我有这段代码: Intent intent = new Intent(
我的 Activity 堆栈是 A1 B A2,A2 在顶部。 A1 和 A2 是同一个 Activity A 的实例。现在在 A2 中,我希望 A2 退出并将 A1 放在前面,因此最终堆栈应该是 B
我在堆栈中有两个 Activity ,为了显示它们,我使用了 FLAG_ACTIVITY_REORDER_TO_FRONT。到目前为止一切顺利,当我想使用 overridePendingTransit
当推送通知到达时,我需要将应用程序从后台带到前台。这段代码 在 11 之前的版本上运行良好。 @Override public void onMessageReceived(RemoteMessage
我有一个应用程序,调用“App1”。在我的 App1 中,我调用了相机应用程序。 intent = new Intent(Intent.ACTION_MAIN); intent.setComponen
最近,我遇到了重新启动已经在后台堆栈中的 Activity 的问题。国旗FLAG_ACTIVITY_REORDER_TO_FRONT是管理此问题的最佳解决方案。但在 Android 4.4 及更高版本
我的目标是让两个 UI Activity 保持 Activity 状态,并在它们之间随意来回切换,而不必终止/重新启动其中任何一个。但是使用 FLAG_ACTIVITY_REORDER_TO_FRON
我是一名优秀的程序员,十分优秀!