gpt4 book ai didi

android - 什么决定了 View 何时实际显示?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:39 32 4
gpt4 key购买 nike

在我的主要 Activity 中,我在 onCreate 中调用了 setContentView。然后在 onResume 中启动一项服务,如果这是第一次进入该服务,它会创建一个警报并停止。我希望布局在调用 setContentView 时出现,但单步执行调试器表明它在服务返回之前不会出现。

是否应该在调用 setContentView 时立即显示?

编辑

似乎在第一个应用程序 (MAIN/LAUNCHER) 开始时未调用 onWindowFocusChanged。通过调试,似乎发生了以下情况:-MAIN onCreate - onStart - onResume(这是服务启动的地方SERVICE 类 - onStart - 服务返回MAIN -onResume - onWindowsFocusChanged(屏幕第一次出现)

我看到的图表表明该 Activity 从 onStart 开始就可见,但第一个 Activity 似乎并非如此。有什么办法可以在开场时强制显示屏幕?

最佳答案

内容 View 是在调用 setContentView() 之后立即定义的,因此您可以开始使用 findViewById() 并管理 View用户界面的 s 直接来自这里。

但是:

  • onResume() 返回之前不显示 View 。这实际上是 onResume() 的目的之一:每次 Activity 进入前台时调用它,因此就在其用户界面实际显示之前调用。

  • 这并不意味着 UI 当时可见,即使它已显示。例如,它可以被锁屏隐藏。 onWindowFocusChanged(true) 在用户界面实际可见时(刚获得焦点时)调用。

所以用户界面同时显示和可见的时刻在onResume()(之前调用)和onWindowFocusChanged(true)之间(紧随其后调用)。

关于android - 什么决定了 View 何时实际显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7012753/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com