Activity.finish()上的AsyncTask仍然在后台运行会发生什么?

sto*_*986 15 android android-asynctask android-activity

Activity.finish()上的AsyncTask仍然在后台运行会发生什么?

它是否只是将Activity从活动堆栈中弹出,但等待销毁Activity对象,直到AsyncTask完全完成(因为AsyncTask是我的Activity的内部类)?

另外,如果AsyncTask是一个公共的非内部类,它没有引用Activity的实例,它会采取什么不同的行为吗?

Kar*_*ran 11

我用Thread尝试了同样的事情,我的观察是它继续运行线程.

  • 是的,`AsyncTask`将继续运行完成.它将保留对`Activity`的引用,保持`Activity`不被垃圾收集...除非它是一个静态内部类或完全独立的类,它没有引用`Activity`或任何指向它的东西`Activity`(例如,`View`). (17认同)