我有一個活動和一個片段。 該片段啓動一個持續3秒的線程,然後調用該活動的回調方法。Android - 線程和回調到活動
如果配置被改變(即方向改變),我的活動會被新的引用重新創建,但線程仍然有舊的引用,導致一團糟。
任何想法來解決這個問題?謝謝
我有一個活動和一個片段。 該片段啓動一個持續3秒的線程,然後調用該活動的回調方法。Android - 線程和回調到活動
如果配置被改變(即方向改變),我的活動會被新的引用重新創建,但線程仍然有舊的引用,導致一團糟。
任何想法來解決這個問題?謝謝
如何使用服務,而不是線程?
參考這裏:
https://github.com/stephanenicolas/robospice/wiki/Starter-guide
,如果你想傳達的線程之間的片段或活動。像監聽器一樣使用接口。例如,如果活動重新創建或更改,則通知線程,將偵聽器更改爲新活動。
您可以使用AsyncTask而不是線程。在activity的onDestroy()方法中調用task.cancel()。
因此,如果已經調用了onDestroy()方法,您的活動將不會得到任何回調。
如果你堅持要用線程那麼可能是你可以在你的回調方法添加這樣的檢查
if(getActivity() == null || getActivity().isFinishing())
return;
問題是我需要執行回調方法,但由於我有這個問題,我必須將舊引用重定向到新引用......可能線程不適合用於此目的...... –
查看新活動的任何方式這是重新創建將再次創建線程,所以你會得到回調。 –
感謝您的意見,但事實是,我認爲服務先進的組件,它可以是用於比這更先進的目的。線程是否確實對此不利? –
也許是的。你可以搜索。 – hanbumpark