Android - 线程和回调活动

时间:2016-07-07 20:08:25

标签: android multithreading callback fragment

我有一个活动和一个片段。 这个片段启动一个持续3秒的线程,然后在活动上调用一个回调方法。

如果更改了配置(即方向已更改),我的活动将使用新引用重新创建,但该线程仍然具有旧引用,导致混乱。

有什么想法解决这个问题吗?感谢

2 个答案:

答案 0 :(得分:0)

如何使用服务代替线程?

参考:

https://github.com/stephanenicolas/robospice/wiki/Starter-guide

如果要在线程之间传递片段或活动。使用像监听器这样的界面。例如,如果活动重新创建或更改某些内容,请通知线程,将侦听器更改为新活动。

答案 1 :(得分:0)

您可以使用AsyncTask而不是线程。在活动的onDestroy()方法中调用task.cancel()。

因此,如果已经调用onDestroy()方法,您的活动将无法获得任何回调。

如果您坚持使用线程,那么您可以在回调方法中添加这样的支票

if(getActivity() == null || getActivity().isFinishing())
   return;