多进程和多线程学习:--只有自己变优秀了才能遇到更优秀的别人
1、问题:如果AsyncTask被声明为Activity的非静态内部类,那么AsyncTask会保留一个对创建了AsyncTask的Activity的引用
如果Activity已经被销毁,AsyncTask的后台线程还在执行,它将继续在内存保留这个引用,
导致Activity无法被回收,引起内存泄露。
解决:在Activity销毁之前cancel掉AsyncTask,中断AsyncTask的执行。
问题:屏幕旋转或Activity在后台被系统杀掉等情况会导致Activity的重新创建,之前运行的AsyncTask会持有一个之前Activity的引用,
这个引用已经无效,这时调用onPostExecute()再去更新界面将不再生效。
解决:在Activity生命周期结束之前cancel掉AsyncTask
1、问题:如果AsyncTask被声明为Activity的非静态内部类,那么AsyncTask会保留一个对创建了AsyncTask的Activity的引用
如果Activity已经被销毁,AsyncTask的后台线程还在执行,它将继续在内存保留这个引用,
导致Activity无法被回收,引起内存泄露。
解决:在Activity销毁之前cancel掉AsyncTask,中断AsyncTask的执行。
问题:屏幕旋转或Activity在后台被系统杀掉等情况会导致Activity的重新创建,之前运行的AsyncTask会持有一个之前Activity的引用,
这个引用已经无效,这时调用onPostExecute()再去更新界面将不再生效。
解决:在Activity生命周期结束之前cancel掉AsyncTask