Я довольно новичок в Android. Я работаю над этим проектом, который отображает список приложений и его детали в списке. Я получаю список приложений как JsonArray с сервера. Я использую службу для извлечения JsonArray и LocalBroadcastManager для ее трансляции в MainActivity. Все работает отлично для меня. Но для получения данных в моей mainacitvity требуется несколько секунд. Это заставляет мое приложение отображать только пустой экран. Поэтому я решил добавить диалоговое окно «Прогресс» для отображения, пока я не получу данные из службы. Я нашел пример для отображения диалогового окна «Выполнение» с использованием Asynctask (ссылка: How to use progress dialog in AsyncTask in android). Но моя проблема в том, что я не знаю, как реализовать метод приемника Broascast внутри метода Asyntask DoInBackground. Я искал ответы, но не смог найти их.Реализация широковещательных приемников в asynctask
Я буду очень признателен, если кто-нибудь сможет мне помочь, или предложите альтернативный метод для этого. Спасибо заранее
Мой код:
это метод в классе обслуживания, который я использую, чтобы передать JSONArray в mainActivity
private void broadcastMessage(String message, String extraType) {
// TODO Auto-generated method stub
Intent intent = new Intent("my-event");
if (message != null){
intent.putExtra(extraType, message);
}
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
сообщение здесь содержит мое JSONArray как строка.
Вот код, я использую в mainActivity, чтобы получить данные:
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("my-event"));
Где mMessagerReceiver является объектом BroadcastReceiver.
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
results = intent.getStringExtra("JSONArray");
Log.e("receiver", "got your message");
}
};
Этот код работает хорошо со мной .. Но теперь я хочу broascastReceiver быть в моей AsyncTask. Можно ли это сделать?
также разместите свой код. – John