小编unr*_*gnu的帖子

AsyncTask和运行时配置更改:Android团队认可哪些方法,简洁的代码示例?

自从2009 AsyncTask年在Cupcake(API 3,Android 1.5)中推出以来,它一直被Android团队一直推广为:

他们提供的代码示例强化了这种简单的信息,特别是对于那些不得不以更痛苦的方式使用线程的人.AsyncTask非常有吸引力.

然而,在此后的许多年里,崩溃,内存泄漏和其他问题困扰了大多数选择AsyncTask在其生产应用程序中使用的开发人员.这通常是由于Activity 破坏和娱乐上运行时配置的变化(特别是取向/旋转),而AsyncTask运行doInBackground(Params...); 当onPostExecute(Result)被调用时,Activity已经被破坏,使UI引用处于不可用状态(或甚至null).

Android团队在这个问题上缺乏明显,清晰,简洁的指导和代码样本只会让事情变得更糟,导致混乱以及各种变通方法和黑客攻击,有些体面,有些可怕:

显然,既然AsyncTask可以在很多情况下使用,那么就没有一种方法可以解决这个问题.然而,我的问题是关于选择.

什么是规范(由Android团队认可)最佳实践,使用简洁的代码示例,AsyncTaskActivity/ Fragmentlifecycle 集成并在运行时配置更改时自动重启?

android android-lifecycle android-configchanges android-asynctask android-memory

5
推荐指数
1
解决办法
833
查看次数