在this Udacity project中,有一个奇怪的错误。它会闪烁通知,然后在下一个问题通过时删除。
这是下一个问题的部分:
// Wait some time so the user can see the correct answer, then go to the next question.
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
mExoPlayer.stop();
Intent nextQuestionIntent = new Intent(QuizActivity.this, QuizActivity.class);
nextQuestionIntent.putExtra(REMAINING_SONGS_KEY, mRemainingSampleIDs);
finish();
startActivity(nextQuestionIntent);
}
}, CORRECT_ANSWER_DELAY_MILLIS);
您会看到,它会使用一些额外数据启动相同的活动(QuizActivity)。它还会在启动新活动之前调用finish()来完成此旧活动。
但是,当我调试生命周期时,它显示在调用新活动的onCreate之后调用onDestroy。这是通知闪烁并导致永久状态的原因,因为在onDestroy中,调用了releasePlayer()方法导致通知消失:
private void releasePlayer() {
Log.i(TAG, "release player and notification cancelled");
mNotificationManager.cancelAll();
mExoPlayer.stop();
mExoPlayer.release();
mExoPlayer = null;
}
那有多奇怪?