0
當你需要在loader#onLoadFinished
更新UI,尤其是犯片段的交易,我看到無數的例子,當人們張貼一個可運行的,而不是直接執行,比如:裝載機onLoadFinished:發佈命令VS直接執行
更新:加載程序的回調在UI線程上運行。
1.
public void onLoadFinished(Loader<Void> loader, Void result) {
mHandler.post(new Runnable() {
@Override public void run() {
hideDialog();
}
});
}
VS
2.
public void onLoadFinished(Loader<Void> loader, Void result) {
hideDialog();
}
其中hideDialog
做了一些片段交易:
private void hideDialog() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev).commit();
}
}
什麼是喜歡的原因接近1 vs 2?
我敢打賭,它與避免片段的交易(以hideDilaog
)發生的當前片段onSaveInstanceState
後做,但我看不出方法1幫助在這種情況下。
它們基本上是否相同?
對不起,我沒有提到一切都在UI線程上運行。我更新了這個問題。 – kiruwka 2015-02-06 10:16:21
在這種情況下,我沒有看到選擇1的理由。有興趣看到其他評論和想法:) – Vesko 2015-02-06 10:24:18