我有几个不同的活动,每个活动都有一个 MediaPlayer 和一个 OnCompletionListener 来在当前文件停止播放后启动其他活动。OnCompletion 侦听器中还内置了一个延迟,我通过一个带有 postDelayed 的处理程序来实现它,它看起来像这样:
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 时,有时它只是切换到接下来会出现的 Activity。所以我认为它挂在 postDelayd 的等待中......
我怎么能解决这个问题?
我也在这些活动的 onStop、onPause 和 onDestroy 中这样做:
if (mPlayer != null) {
mPlayer.stop();
mPlayer.release();
mPlayer = null;
}