Использовать BroadcastReceiver
. Как сказал в своем ответе @HendraWD, есть много других способов получить уведомление о завершении загрузки, вы можете попробовать BroadcastReceiver
в вашем случае.
Итак, внутри вашего Activity
создайте BroadcastReceiver
вот так.
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
// Launch your Fragment here
}
};
onReceive
Проверьте функции вашего BroadcastReceiver
. Функция onReceive
будет вызываться, когда загрузка завершится, если вы зарегистрируете BroadcastReceiver
, а затем правильно сообщите об этом. Я добавляю здесь пример кода.
В функции onCreate
вашего Activity
зарегистрируйтесь 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'. –
Никогда не регистрируйтеReceiver на 'onDestroy'! Это никогда не будет называться – HendraWD