代码之家  ›  专栏  ›  技术社区  ›  Harin Kaklotar

如何在应用程序进入后台后启动启动程序活动?

  •  -1
  • Harin Kaklotar  · 技术社区  · 10 年前

    我希望总是在应用程序进入后台后启动启动程序活动。我试过了 android:clearTaskOnLaunch="true" 但它不起作用。我该怎么做?例如,我有 A、 B、C、D、E、F 活动 A. 是启动器活动。 现在我打开应用程序,然后调用一个活动 A>B>C 现在我最小化应用程序。现在我从图标打开应用程序,应用程序从 C 但我想从开始 A. 那么我该怎么做呢?有人说使用onResume意图 意图FLAG_ACTIVITY_NEW_TASK|意图.FLAG_ACTIVITY_CLEAR_TASK 。但是,如果我按下后退按钮,则会调用onResume,我的应用程序将以A活动开始……所以它不起作用……任何解决方案???

    3 回复  |  直到 10 年前
        1
  •  1
  •   Dhiraj    10 年前

    您可以检查应用程序是否处于前台或后台,当应用程序同时进入后台状态时,请执行一些逻辑,以便当应用程序进入前台时,始终显示根活动。

    如何识别应用程序处于哪个状态已得到很好的解释 here

        2
  •  1
  •   tasomaniac    10 年前

    启动活动B时,请使用这些标志。这样,活动B和活动C将始终处于单独的堆栈中。这意味着当有人从主屏幕启动活动A时,他们将始终看到活动A。

    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

    Intent intent = new Intent(context, B.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
    startActivity(intent);
    

    此外,这可能会有所帮助,您可以将此标志添加到根Activity。

    <activity
      android:name=".ui.MainActivity"
      android:clearTaskOnLaunch="true"/>
    
        3
  •  0
  •   Urvish Modi    10 年前

    这是因为设备存储有关应用程序的数据。短时间存储数据。如果您想从rot类启动应用程序。将服务与应用程序一起使用,这样无论何时应用程序进入后台并暂停,都可以选择要执行的操作。