- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Stack Overflow 上看到了一些与使用 Activity.onRetainNonConfigurationInstance() 维护由一个 Activity 实例启动的后台线程并将其传递给 Activity 的下一个实例相关的讨论,例如,当手机的方向从纵向变为横向。
讨论没有具体说明包装在从 onRetainNonConfigurationInstance() 返回的对象中的线程可以做什么。
例如:1.有没有办法使用这种技术实际保持后台线程运行?2. 您是否需要在先前的 Activity 实例消失时以某种方式暂停线程,然后在新实例中重新启动它?
谁能提供一个简短的例子?
如有任何详细信息,我们将不胜感激。
最佳答案
您可以将任何您想要的内容返回给 onRetainNonConfigurationInstance()
。如果您有一个要从 Activity 的一个实例传递到另一个实例的线程,您可以直接返回它,或者将它放在从 onRetainNonConfigurationInstance()
返回的另一个对象中。您不需要暂停线程或以任何方式与其交互。它只是继续运行,就好像什么都没发生过一样。
您唯一需要关心的是线程如何与 Activity 交互(如果有的话)。如果线程将回调 Activity(以指示进度或类似的东西),那么您需要以某种方式为线程提供对新 Activity 的引用,因为旧 Activity 将死掉。
您想在后台线程中做什么?
编辑(添加有关线程/Activity 的更多详细信息):
线程有自己的生命周期,与 Activity 完全分离。如果您在 Activity 中创建一个 Thread 并启动它,那么无论您的 Activity 做什么,它都会运行到完成。唯一会显式停止线程的是 Android 决定终止您的进程(如果您的进程不包含 Activity Activity ,它可能会这样做)。
关于android - Activity 的后台线程和配置更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853049/
我是一名优秀的程序员,十分优秀!