Я использую службу для воспроизведения радио, когда приложение работает в фоновом режиме. Мое приложение содержит 4 радиоканала. Поэтому я использовал viewpager. Когда я прокручиваю медленно, мое приложение отвечает правильно. Но когда я быстро сажусь, мое приложение не отвечает & Я получаю диалог ANR. Согласно документу, служба работает как отдельный поток. Поэтому он не должен блокировать мое приложение. Но чтобы быть на более безопасной стороне, я добавил службу в асинхронную задачу. Но все та же проблема. Я тестировал его на устройстве Nexus 5. Но когда я запускаю приложение на эмуляторе (Nexus 5-lollypop). Он работает отлично. Тогда в чем проблема? Кто-нибудь сталкивается с аналогичной проблемой. Это, как я начинаю свою службу:Получение диалога ANR при запуске службы в Lollypop
private void playRadio() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... voids) {
if (getUserVisibleHint()) {
if (PreferencesManager.getInstance(getActivity()).isLiveRadioPlaying())
stopRadio();
Log.d("Visible", "");
Intent intent = new Intent(getActivity(), LiveRadioService.class);
intent.setAction(ACTION_START);
intent.putExtra(RADIO_URL, mRadioUrl);
intent.putExtra(RADIO_TITLE, mSectionTitle);
intent.putExtra(LIVE_RADIO_SECTION_POSITION, mSectionPos);
getActivity().startService(intent);
}
return null;
}
}.execute();
}
Preparing the media player inside asynctask:
private void playRadio() {
new AsyncTask<Void,Void,Void>(){
@Override
protected Void doInBackground(Void... voids) {
try {
cancelNotification();
mMediaPlayer.stop();
mMediaPlayer.reset();
mMediaPlayer.setDataSource(mUrl);
mMediaPlayer.prepareAsync();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute();
}
я решил мою проблему. Когда медиа-плеер находился в состоянии готовности, если я пытаюсь перезагрузить медиаплеер, медиаплеер не отвечает. Следовательно, получение ANR. Поэтому я жду, пока медиаплеер полностью подготовится, а затем перезагрузите медиаплеер, если URL-адрес другой. это решило мою проблему и не получило aNR больше. –