Отображает ли Android-журнал SDK пользовательские сообщения Log.d() в том же порядке, в котором они созданы?

У меня есть следующий раздел кода внутри потока

if(isPlaying){ if(applyDsp){ // Convert short lin[] to ****** 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 переменными. Они изначально ложны, но как только они становятся истинными, они не сбрасываются в false в бесконечном цикле внутри функции run(). После того, как bufferFull станет истинным, приложения applyDSP is True а bufferFull is True должны быть поочередно выполняться каждый раз, когда выполняется бесконечный цикл. Но я видел, что иногда приложение applyDSP is True непрерывно applyDSP is True несколько раз, затем два чередующихся, затем applyDSP is True снова продолжалось снова, затем они чередовались снова и так далее. Я много раз просматривал код и не могу найти, почему bufferFull будет возвращен к false. Поэтому я теперь предполагаю, что, возможно, сообщения не отображаются в правильном порядке.

Перед тем, как отображать их, регистрирует ли он журнал Logcat, или порядок, в котором они отображаются в Logcat, в том порядке, в котором они созданы?

---РЕДАКТИРОВАТЬ--- используя метод, объясненный в комментариях к ответу @TCA, он записывает только небольшой раздел вывода logcat в файл, возможно, тот, который генерируется во время выдачи команды. Я хочу, чтобы вывод logcat был передан в файл, когда он передается на панель logcat в SDK android.

1 ответ

Я думаю, что он будет выводить сообщения журнала по порядку, если у вас есть сомнения, добавьте

System.currentTimeMillis()

С вашим сообщением журнала и проверкой со временем.

подобно

Log.d("MYLOG TIME IN MILLSEC:" +System.currentTimeMillis(), "bufferFull is True");

licensed under cc by-sa 3.0 with attribution.