if
条件为真,但else
代码段中的代码已被执行。
我已经尝试重启Eclipse,但没有帮助。
答案 0 :(得分:1)
似乎有两个问题。
问题1:
第一个问题是使用getCurrentPosition()
MediaPlayer
方法
mediaPlayer.stop();
mediaPlayer.getCurrentPosition(); // The current position in milliseconds
在上面的代码中,第二行返回8549
,而mediaPlayer已经停止。我觉得在停止媒体播放器后,getCurrentPosition
方法将返回零毫秒。
问题2:
第二个问题(实际上是这篇文章的答案)是调试器。它似乎是调试器中的一个错误。
mPlayer.getCurrentPosition() // value in debugger is 0 (as shown in the screenshot in OP)
mPlayer.getCurrentPosition() == 0 // value in debugger is true (as shown in the screenshot in OP)
但是当我在logcat中记录完全相同的东西时,它会得到不同的结果:
Log.d("pos", mPlayer.getCurrentPosition()+""); // prints a non-zero value in log, in my case 8549
Log.d("con", String.valueOf( mPlayer.getCurrentPosition() == 0 ) ); // prints a false value in log
这清楚地说明了else
代码段被执行的原因以及为什么我们不应该盲目地依赖调试器:-P
<强>摘要强>
每当您在调试器中看到如此戏剧性的行为时,请尝试在logcat中记录变量。 (归功于Wakim,因为他的评论给了我指示)
答案 1 :(得分:0)
你试过吗
mPlayer.getCurrentPosition()。equals(&#34; 0&#34;)
还尝试将代码放在if块中的else块中(反之亦然)