【问题标题】:What could cause an Android app to be sent to the background?什么可能导致 Android 应用程序被发送到后台?
【发布时间】:2017-09-23 15:59:57
【问题描述】:

我正在开发一个 android 应用程序,其中有两个活动使用带有 FLAG_ACTIVITY_REORDER_TO_FRONT 标志的 startActivity 来回切换。一个活动是使用片段的相当标准的 Android 活动。第二个活动是使用 Unity 创建的交互式动画屏幕的包装器。我偶尔看到的问题是,在一个活动启动另一个活动后,第二个活动将显示正常,但是,只要您点击第二个活动的任意位置,应用程序的屏幕就会关闭,就像您点击了 Android Home 按钮一样.不会记录任何异常,该应用程序仍列为活动应用程序,您可以恢复该应用程序并从上次中断的地方继续。有没有人见过这种行为?

【问题讨论】:

  • 请提供代码
  • 这是一个非常大的项目。我还无法在独立项目中重现该问题。目前,我只是想看看其他人是否曾经见过这种行为,并获得一些可能导致问题的提示。
  • 您是否尝试在开始新活动并点击主页按钮时添加此标志intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  • 此应用需要作为“kiosk”应用运行,并将调用 Activity.startLockTask()。所以我不能使用 FLAG_ACTIVITY_NEW_TASK 和 FLAG_ACTIVITY_CLEAR_TASK 因为它们会让我脱离锁定任务。
  • 这个线程提到了同样的行为。 stackoverflow.com/questions/31316451/…

标签: android unity3d start-activity


【解决方案1】:

我相信这个问题是由 Android 中的错误引起的。见https://issuetracker.google.com/issues/37070093

我制作了一个视频来展示这个问题 - https://userbob.com/ReorderToFront.mp4

这是演示问题的代码 - https://userbob.com/ReorderToFrontTest.zip

对我来说,似乎只有当我尝试重新排序到前面的活动当前是其任务堆栈的根活动时才会出现问题。所以我创建了一个新的活动,它位于调用 startActivity 的任务的根部,用于 onCreate 方法中的第二个活动。

public class RootActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent( this, MainActivity.class );
        startActivity( intent );
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2012-11-21
    相关资源
    最近更新 更多