【问题标题】:Android lifecycle, which life cycle methods are executed in the same message during orientation change?Android生命周期,在方向改变时,同一条消息中执行了哪些生命周期方法?
【发布时间】:2016-03-06 17:29:19
【问题描述】:

我需要对我最近发现的一些信息进行确认。

在方向更改期间,生命周期方法 onCreate(), onStart() and onResume() 是否在 message queue 中作为一个 message 一起处理?

另一方面,onPause(), onStop() and onDestroy() 被作为一个 message 处理?

我想知道的一个原因是,如果我有一个线程在发布到主 ui 线程时无限循环并且我改变了我的方向,它是否总是在 onResume() 之后发布?它永远不会在生命周期方法之间发布,对吧?:

private static class MyThread extends Thread {
    @Override
    public void run() {
        while (true) {
            mainUiHandler.post(myRunnable);
        }
    }
}

谢谢!

【问题讨论】:

  • 一条消息是什么意思?
  • 虽然这在理论上很有趣(顺便说一句,我认为这不是真的),但它与应用程序编程无关。你不能使用它,更高版本的 Android 可能会改变行为。

标签: android message-queue lifecycle


【解决方案1】:

没有。至少不是你可以依赖的东西。请记住,在某些情况下,可以在没有 onStop 的情况下调用 onPause。没有 onResume 的 onStart 也一样。 (在这两种情况下,如果需要,它们最终都会被调用)。 onDestroy 可能永远不会被调用,你的应用应该假设它不会被确定。

【讨论】:

  • 哦,你说得对,我想我把这个问题发给了快速思考。我特别想知道他们是否在方向改变期间收到一条消息。我会更新我的问题。
  • 这个问题的答案可能是,但这是一个实现细节,并不能保证在不同的 android 版本之间保持不变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多