通过滑动杀死App时的回调

fan*_*ncy 6 android android-lifecycle

我有一个涉及导航的应用程序.如果用户启动导航,则会创建一种"navigationLifecycleManager".它存储在应用程序实例中,以便在配置更改,活动等之间切换时幸免于难.

但是,如果用户"退出"应用程序,我想杀死一些后台线程,将一些次要数据存储到应用程序存储中,依此类推.所以我需要一些钩子告诉我应用程序何时退出.

  1. 导航应该在任何活动生命周期中存活(这就是为什么它仍然在应用程序实例中)
  2. 按下主页按钮后导航应该存在.
  3. 通过按"后退",导航不应该在应用程序结束时继续存在.
  4. 通过将其从"最近的应用程序"列表中滑出来导航时,导航不应该存在.

必须通过覆盖"onPause"并检查"isFinishing"来实现.但这并不能解决最近的应用程序列表中的问题.滑动似乎没有任何东西.无论是"的onPause","的onDestroy",也不是"onTerminate"是所谓的活动/应用.

Art*_*aev 6

您无法处理滑动,因为系统只是从内存中删除您的进程而不调用任何回调。

我已经检查过,在用户调用“最近的应用程序”屏幕之前,onPause()将始终被调用。所以你需要在onPausemethod 中保存所有数据而不检查isFinishing().

要检查返回按钮,请使用onBackPressed方法。