使用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