2 u012216660 u012216660 于 2015.07.24 15:47 提问

Android 如何通过一个fragment结束另一个fragment的死循环线程

有一个activity,包含两个fragment,两个fragment各自包含一个死循环线程,我想通过一个fragment结束这个activity(通过finish),顺便把这个fragment里的死循环线程结束了(通过flag=false和thread.interrupt())。再次启动这个activity,被结束的死循环线程能正常启动,但是没有结束的死循环线程不能正常工作了,我catch到错误,但不知道是不是因为没有结束而出现的错误,请大神门帮忙~

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.24 15:51

1、activity销毁,fragment也销毁了,下次重新运行activity就是重新创建fragment。如果自己没处理过保存变量值和再读取之类操作的话,状态是不会保留的。
2、线程循环既然结束了,就没有死循环一说,结束了就是结束了。你所说死循环估计就是while(flag),根据flag标记判断,但一旦flag是false,这个线程也就结束了。不可能再运行这个线程。

danielinbiti
danielinbiti 回复cuishiming10: fragment是依托于activity的,activity都没有了,fragment还有什么用。
2 年多之前 回复
u012216660
u012216660 你的意思是我只要在一个fragment里调用getActivity.finish()这个函数,这个fragment结束,他归属的activity结束,这个activity包含的其他所有的fragment也结束了?没有异常或错误吗?
2 年多之前 回复
DesmondJ
DesmondJ   2015.07.25 01:09

有两个办法
第一发广播,监听到特定action结束循环,比较容易实现
第二是在activity里实现结束fragment函数,然后通过fragment里的onattach函数绑定activity,需要的时候再调这个函数

Csdn user default icon
上传中...
上传图片
插入图片