У меня есть несколько различных действий, каждый из которых с MediaPlayer и OnCompletionListener запускает другие действия после того, как текущий файл перестает играть. Там также задержка построен в OnCompletion прослушивателе, который я достичь через Handler с postDelayed и это выглядит следующим образом:Прерывать постданные из обработчика внутри OnCompletionListener
public void onCompletion(MediaPlayer mp) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
try {
Intent stopplay;
stopplay = new Intent(actualActivity, Class
.forName(nextView));
actualActivity.startActivity(stopplay);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}, stopTime);
}
Проблема с этим, когда я называю мой SettingsActivity, иногда он просто переключается на операцию это было бы следующим. Поэтому я предполагаю, что он висит в ожидании postDelayd ...
Как я мог обойти это?
Я также сделать это в OnStop, OnPause и OnDestroy этих мероприятий:
if (mPlayer != null) {
mPlayer.stop();
mPlayer.release();
mPlayer = null;
}
Проблема заключается в том, что обработчик теперь используется внутри класса, который расширяет OnCompletionListener. это выглядит так: http://pastebin.com/fGJeSs0y – Kazoooka
У вас должна быть ссылка на этот обработчик. – Devrim
Вы видите, где моя проблема? Я не могу передать этот обработчик в OnCompletionListener ... – Kazoooka