使用BroadcastReceiver
。正如@HendraWD在他的回答中所述,還有很多其他方式可以獲得有關下載的完成通知,您可以在您的案例中嘗試BroadcastReceiver
。
因此在你的Activity
裏面創建一個BroadcastReceiver
這樣。
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
// Launch your Fragment here
}
};
檢查您BroadcastReceiver
的onReceive
功能。如果您註冊BroadcastReceiver
,然後通知正確返回,下載完成後將調用onReceive
函數。我在這裏添加一些代碼示例。
在Activity
的onCreate
函數中,首先註冊BroadcastReceiver
。
registerReceiver(mReceiver, new IntentFilter("DOWNLOAD_COMPLETE"));
在
onDestroy
功能
現在,在您Activity
註銷接收器。
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mReceiver);
}
現在從Service
你開始,當下載完成後,您可能需要通知回到你Activity
有關。所以,你需要像這樣從你的Service
發送廣播。
sendBroadcast(new Intent("DOWNLOAD_COMPLETE"));
希望有幫助。
感謝它解決了這個問題,但它仍然不明白工作,我必須做一些學習。 – Nsnik
這很簡單。您需要有一個接收器才能繼續收聽下載並完成下載,您只需將廣播發送到接收器即可。只要接收器接收到廣播,就會調用'onReceive'函數。 –
永遠不會在'onDestroy'上取消註冊接收器!這是永遠不能保證被稱爲 – HendraWD