我在这里看到了有关使用Activity.onRetainNonConfigurationInstance()来维护后台线程的一些讨论,该后台线程由Activity的一个实例启动并将其传递给Activity的下一个实例,例如,当手机的方向从纵向变为横向时。活动的后台线程和配置更改
讨论并没有详细说明使用从onRetainNonConfigurationInstance()返回的Object中的线程可以做什么。
例如: 1.有没有一种方法可以使用这种技术实际保持后台线程运行? 2.你需要以某种方式暂停线程,当前一个活动的实例消失,然后再次在新实例中重新启动它?
任何人都可以提供一个简短的例子吗?
任何细节,将不胜感激。
由Activity启动的后台线程没有直接引用Activity或Context。当Activity创建线程时,它将两个集合传递给该线程将要填充的线程。所以Activity和后台线程共享对这些集合的引用。后台线程解析XML文件并通过互联网加载图像。当线程在几秒钟后返回时,活动可以访问它传递给后台线程的两个集合中的图像和其他数据。 – Ted
然后你没有问题。线程只是继续做它的事情。您只需将旧活动的参考传递给新活动。 –
其实我的后台线程确实参考了活动。它当前是活动的内部类,并在Activity.runOnUiThread(...)完成其后台工作时调用它。它在UI线程上运行的代码发出调用,以使用下载的图像更新视图并进行另一次调用以关闭ProgessDialog。 – Ted