Можно ли отобразить ProgressBar или ProgressDialog от моего (который Сервис загрузки удлиняется IntentService), за исключением прогресса отображаемых в строке уведомлений?
Не могли бы вы написать пример кода или псевдокода, как я могу это сделать? Thank Вы
Вы можете использовать ResultReceiver для достижения своей цели. ResultReceiver реализует Parcelable, так что вы можете передать его в IntentService как:
Intent i = new Intent(this, DownloadService.class);
i.putExtra("receiver", new DownReceiver(new Handler()));
<context>.startService(i);
Тогда в вашем onHandlerIntent() все, что вам нужно, чтобы получить приемник, который вы передаёте в Намерения и отправить текущий прогресс в ResultReceiver:
protected void onHandleIntent(Intent intent) {
// obtaining ResultReceiver from Intent that started this IntentService
ResultReceiver receiver = intent.getParcelableExtra("receiver");
...
// data that will be send into ResultReceiver
Bundle data = new Bundle();
data.putInt("progress", progress);
// here you are sending progress into ResultReceiver located in your Activity
receiver.send(Const.NEW_PROGRESS, data);
}
и ResultReceiverбудет обрабатывать данные и сделать обновление вProgressDialog. Вот реализация ResultReceiver (сделать его как внутренний класс вашего класса деятельности):
private class DownReceiver extends ResultReceiver {
public DownloadReceiver(Handler handler) {
super(handler);
}
@Override
public void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
if (resultCode == Const.NEW_PROGRESS) {
int progress = resultData.getInt("progress");
// pd variable represents your ProgressDialog
pd.setProgress(progress);
pd.setMessage(String.valueOf(progress) + "% downloaded sucessfully.");
}
}
}
вы можете использовать задачу асинхронной для отображения диалога прогресса, положить скачать сервис внутри doinbackground() и в предварительном диалоге шоу и запись выполнения диалог отмены диалога. –
@ShashankAgarwal Я должен уточнить, что хотел бы, чтобы мой сервис загрузки был доступен и для других видов деятельности. Как вы предлагаете, я могу получить доступ к сервису загрузки из какой-либо другой деятельности? – venta7
** «Возможно ли отображение ... кроме прогресса, показанного на панели уведомлений?» ** - Да, это возможно. ** «Не могли бы вы написать пример кода или псевдокода, как я могу это сделать?» ** Нет. Мы не пишем код для людей здесь, в Stackoverflow. Я предлагаю вам взглянуть на сайт разработчиков Android и/или искать в Интернете примеры. Там много. – Squonk