我在Thread中有以下代码部分
if(isPlaying){
if(applyDsp){
// Convert short lin[] to double
Log.d("MYLOG", "applyDSP is True");
if(bufferFull){
// when the code reaches here x[39] always holds the latest sample
// (if lin.length == 1)
Log.d("MYLOG", "bufferFull is True");
for(i=0;i<(lin.length - 1);i++){
x[i] = x[i+1];
}
}
这是在Thread内部的无限循环内。 Thread的run()函数在此无限循环结束之前不会结束。所以上面的代码部分继续被调用,直到其他地方满足其他条件。 applyDsp
和bufferFull
是boolean
个变量。它们最初是假的,但一旦它们变为true,它们就不会在run()函数内的无限循环内重置为false。一旦bufferFull
成立,每次无限循环执行时,消息applyDSP is True
和bufferFull is True
都应该被显示。但我看到有时消息applyDSP is True
连续多次出现,然后两个交替,然后applyDSP is True
再次连续出现,然后再次交替,依此类推。我已多次查看代码,无法找到为什么bufferFull
将重置为false。所以我现在猜测消息可能没有以正确的顺序显示。
Logcat是否在显示它们之前首先缓冲它的消息,或者它们在Logcat中看到它们的确切顺序?
--- --- EDIT
使用@TCA对答案的评论中解释的方法,它只将logcat输出的一小部分写入文件,可能是在给出命令时生成的那一部分。我希望将logcat输出流式传输到文件,因为它将流式传输到android SDK中的logcat面板。
答案 0 :(得分:0)
我认为,如果您有疑问,请按顺序输出日志消息
System.currentTimeMillis()
使用您的日志消息并检查时间。
喜欢
Log.d(“MILLSEC中的MYLOG TIME:”+ System.currentTimeMillis(),“bufferFull 是真的“);