我使用類擴展Loader
。 我得到結果後如何阻止加載器?如何正確停止加載程序?
當我旋轉手機,我得到一次結果:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
//... finish this loader? (or delete result)
}
我使用類擴展Loader
。 我得到結果後如何阻止加載器?如何正確停止加載程序?
當我旋轉手機,我得到一次結果:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
//... finish this loader? (or delete result)
}
使用此:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
stopLoader(id);
}
void stopLoader(int id) {
getLoaderManager().destroyLoader(id);
}
而且需要使當請求再次撥打getLoaderManager().restartLoader()...
不知怎的,我的裝載機還是會被稱爲當這些數據的變化,我叫即使'getLoaderManager()destroyLoader(ID);'。我想知道爲什麼會這樣。 – Mauker
我不幹不滿意機器人會裝載機API作爲輪換將導致加載程序重新開始他們在做的工作。這就是我使用和創建Android可維護任務庫的原因。它是輕量級的,基於Android AsyncTask API,但具有自動旋轉處理功能。您可能需要檢查並使用它而不是加載器。
https://github.com/NeoTech-Software/Android-Retainable-Tasks
免責聲明:我的Android可保留任務的作者。
我不知道爲什麼你的裝載機在你旋轉設備時重新啓動。我的加載程序不會重新啓動,但是如果我的加載程序已經從網絡獲取數據 - 當我旋轉設備時,他總是返回此數據。 – Artem
有些人可以根據他們的狀態(緩存,運行,完成)進行操作。請參閱:http://stackoverflow.com/a/30778505/1052697 –
你在哪裏初始化的裝載機? – David
@大衛在onCreateView我的片段 – Artem
好吧我做了什麼,但它不是最好的解決辦法,我認爲是,在onLoadFinished我ASIGN結果到我的活動/片段中的對象......那麼的onCreate/onCreateView我檢查爲resultData。如果它是空的,我啓動我的加載程序,否則我將它保持原樣。但是你要保存結果的onSaveInstanceState中和的onCreate保留它... – David