正文  基础知识 > Activity >

android开发中Activity如何管理Thread

问题:Android activity 或 fragment 中启动了一个线程,thread start -》 activity destroy -》Thread 没有执行完毕,activity如何处理该线程1 继续运行,2 thread 交由Activity管理,随之结束。该线 ...

问题:Android activity 或 fragment 中启动了一个线程,thread start -》 activity destroy -》Thread 没有执行完毕,activity如何处理该线程1.继续运行,2.thread 交由Activity管理,随之结束。
 
该线程如果没有跑完run方法不会被关闭,当程序终止的时候线程会被结束掉。该thread发消息给handler后handler将继续处理,是否会报错在于是否调用了该activity,及该activity的内存是否被回收。activity调用onDestroy方法后内存并没有被销毁,而是处在了activity栈的底层,当内存不够的时候,该activity的内存将被回收掉。所以在该activity的内存未回收,并且调用activity时不会报错,在该activity的内存已经被回收,并调用该activity时会报错。可以在该activity中加入标记变量来标记是否该activity被destroy,当该变量值为真时不处理该消息。