发生配置更改时,这会中断主线程上当前正在执行的功能吗?还是可以保证在配置更改发生之前完成该功能?
对于主线程回调的类似问题。如果您有一些AsyncTask从主线程上的某个函数启动,那么该函数是否保证在AsyncTask回调并开始在主线程上执行代码之前完成?
最佳答案
不,主线程上发生配置更改。在其中一个函数的执行中间不会发生这种情况。
AsyncTask是异步的。在重新创建活动之前,它可能不会完成,并且不会因配置更改而终止。它会继续执行,并且如果在onPostExecute中调用UI视图函数,则会导致异常(因为这些视图不再存在)。您需要防止这种情况。 IMO是结束和重新创建有关配置更改的活动的原因之一,成为历史上最愚蠢的前5个设计决策。我强烈建议您关闭异步任务或线程。它将简化您的代码,并避免必须重做AsyncTask或onPostExecute中出现问题。