現在のファイルの再生が停止した後に他のアクティビティを開始するために、それぞれ MediaPlayer と OnCompletionListener を持ついくつかの異なるアクティビティがあります。postDelayed を使用してハンドラーを介して達成する OnCompletion リスナーに組み込まれた遅延もあり、次のようになります。
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;
}