2015-08-08 25 views
0

在我的應用程序中,我有一個AsyncTask,它將一些數據上傳到服務器,並使用接口「FetchCompleteListener」與調用活動進行交互中寫道。調用onPostExecute中的主要活動(在活動被銷燬或處於停止狀態後)

調用活動實現了一個FetchCompleteListener,並將其自己的實例傳遞給AsyncTask。

給定的AsyncTask調用FetchCOmpleetListener在onPostExecute onFetchCoMplete()

我的問題是 - 什麼在下列情況下發生:

  1. 當給定的活動處於停止狀態
  2. 當給定的活動完成/銷燬?

這是內存泄漏的情況嗎?當我嘗試在onPostExecute()中調用onFetchComplete時,我的應用程序會崩潰嗎?

+0

你應該使用總線... http://stackoverflow.com/questions/31499875/event-bus-fragment-unregister/31499998#31499998 – EpicPandaForce

回答

1

你應該總是從你的用戶界面分離背景任務。您可以執行下列操作之一:

  1. 你的用戶界面將註冊內的onResume廣播接收器(當然註銷中的onPause),後臺任務會當它是發送將由UI捕獲廣播積極

  2. 你可以排隊在一些服務類的結果(或您最適合)(基於一些TAG),當相應的用戶界面變得生機勃勃它會從隊列結果

  3. 可以使用一個EventBus像Ottogreenrobot

+1

感謝您的信息。我已將我的代碼從AsyncTask移至Serive。 – Wanted

相關問題