android:facebook messenger如何与我的活动生命周期互动?

时间:2014-12-29 23:51:11

标签: android facebook android-activity android-lifecycle

我正在尝试学习如何开发Android,我目前正在关注活动生命周期的本教程:https://developer.android.com/training/basics/activity-lifecycle/pausing.html

我创建了一个非常简单的代码来检查onPause()onResume()函数的触发,例如对于onPause()我刚刚在我的一个活动中写了以下内容(我为onResume()函数做了同样的事情):

@Override
protected void onPause() {
    super.onPause();
    Toast.makeText(this, "ON PAUSE", Toast.LENGTH_LONG).show();
    Log.i("STATUS_ON_PAUSE", "ON PAUSE");
}

当我开始/停止活动或当我从一个活动切换到另一个活动时,我会看到相应的Toasts和日志。但是,当我将facebook-messenger对话覆盖在我的活动上时,我什么也看不到。打开对话时没有Toast(我原本希望看到“ON PAUSE”),将焦点重新放回我的应用程序时没有Toast。

我试图在更广泛的层面(我的设备)检查日志文件,但我仍然不够好,不能真正理解那里发生的事情(信息太多)。 所以,我的问题是:当我向聊天室提供/移除焦点时,为什么我的活动没有暂停/恢复?谢谢!

1 个答案:

答案 0 :(得分:2)

最简单的答案是:

Messenger正在向窗口添加视图,而不是开始新活动。

这就是Messenger需要SYSTEM_ALERT_WINDOW权限的原因,当你看到它的详细信息时你可以看到: “借鉴其他应用”权限。

您可以看到THIS ARTICLE

  1. 当有人掠过你的时候,你不会得到onPause或onResume 窗口。
  2. 当您的活动被覆盖时,您将始终获得onPause和onStop 与其他活动。
  3. 当您的活动开始时,您将始终获得onPause和 no onStop 用对话框样式活动覆盖(以便您的活动是 仍在背景中可见)。
  4. 当您的活动被DialogFragment覆盖时,您将获取onPause或onStop - 这可能看起来与对话框样式活动完全相同,但生命周期和实施方面存在差异。