【问题标题】:When does surfaceDestroyed() occursurfaceDestroyed() 什么时候发生
【发布时间】:2011-04-09 17:39:48
【问题描述】:

我无法确定surfaceDestroyed() 何时出现。我试图让我的线程停止在surfaceDestroyed() 方法(SurfaceView)中运行,但似乎我的表面从未真正被破坏......有人可以告诉我什么时候发生这种情况吗?或者怎么触发?

【问题讨论】:

  • 例如,我可以通过将手机的方向从纵向 -> 横向更改来触发它。

标签: android surfaceview


【解决方案1】:

每当您单击返回或主页按钮并离开您获得的活动时:

活动暂停

表面被破坏

最后是活动 onDestroyed。

当您返回surfaceView 时会重新创建,但是如果您一直在使用静态变量来驱动应用程序,它们通常会被保留,并且看起来好像surfaceView 没有被破坏。

关于关闭线程,检查这个:Android crash when app is closed and reopened

【讨论】:

  • 看,我还以为是你回来的时候。但是,我尝试在 SurfaceDestroyed 方法中停止我的线程.....但它们继续运行@.@
  • 您不能轻易停止线程,只需停止其中的循环,然后使用 JOIN 以便它们自行完成并“加入”主 UI 线程,然后您可以正确关闭 UI 线程。请参阅我提供的链接的问题代码中的 surfaceDestroyed 方法。
【解决方案2】:

当视图由TabHost 管理时,不会调用surfaceDestroyed()

【讨论】:

    猜你喜欢
    • 2017-08-03
    • 2011-01-01
    • 1970-01-01
    • 2014-01-06
    • 2017-02-03
    • 1970-01-01
    • 2011-01-21
    • 2012-03-17
    • 1970-01-01
    相关资源
    最近更新 更多