问题描述
- Android 如何通过一个fragment结束另一个fragment的死循环线程
- 有一个activity,包含两个fragment,两个fragment各自包含一个死循环线程,我想通过一个fragment结束这个activity(通过finish),顺便把这个fragment里的死循环线程结束了(通过flag=false和thread.interrupt())。再次启动这个activity,被结束的死循环线程能正常启动,但是没有结束的死循环线程不能正常工作了,我catch到错误,但不知道是不是因为没有结束而出现的错误,请大神门帮忙~
解决方案
1、activity销毁,fragment也销毁了,下次重新运行activity就是重新创建fragment。如果自己没处理过保存变量值和再读取之类操作的话,状态是不会保留的。
2、线程循环既然结束了,就没有死循环一说,结束了就是结束了。你所说死循环估计就是while(flag),根据flag标记判断,但一旦flag是false这个线程也就结束了。不可能再运行这个线程。
解决方案二:
有两个办法
第一发广播,监听到特定action结束循环,比较容易实现
第二是在activity里实现结束fragment函数,然后通过fragment里的onattach函数绑定activity,需要的时候再调这个函数
时间: 2024-09-12 17:57:43