http://developer.android.com/reference/android/app/Activity.html上阅读有关isFinishing()的Android文档后,我感到困惑。

如果我在isFinishing()中调用onPause(),那么在以下三种情况下isFinishing()调用的返回值是多少?

  • 由于调用了finish(), Activity 被杀死。
  • Activity 不在前台,并且由于内存不足,该 Activity (不是应用程序)已被操作系统杀死。
  • Activity 将在后台进行。

  • 我确信isFinishing()的结果在方案1中为true,在方案3中为false。

    方案2怎么样?在方案2中isFinishing()会返回true还是false?

    最佳答案

    当 Activity 处于前台时,它不会被操作系统杀死。那是没有道理的。

    但是,如果由于用户切换到其他应用程序而使 Activity 进入后台,则在处理了onPause()之后,该 Activity 可能会被杀死。这样,当用户切换到新应用程序时,您可能会得到isFinishing() == false,但随后该应用程序被杀死。

    如文档所述,将所有持久性数据保存在onPause()中。不能保证onDestroy()被调用。

    (顺带一提,如果Dianne介入并纠正我,我不会感到惊讶。)

    关于android - 了解isFinishing(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5227071/

    10-09 12:59