我想從我的應用中的logcat輸出讀取。我能夠正確地閱讀,但它繼續無休止地閱讀它。不知何故,似乎沒有辦法檢測到流的結束。從應用中讀取logcat不能正常工作
不知道我在做什麼錯。
這裏是我的代碼:
String baseCommand = "logcat -v time MyTag:D *:S";
Process process = null;
try {
process = Runtime.getRuntime().exec(baseCommand);
InputStreamReader reader = new InputStreamReader(process.getInputStream());
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
Log.d("SomeOtherTag", line); //This line executes endlessly
}
} catch (IOException e) {
Log.e(DEBUG_TAG, "error in logging");
e.printStackTrace();
}
謝謝你讓我知道重載的方法。但是,即使如此,程序在寫出行後似乎仍然掛起。 – OceanBlue
我能想到的唯一其他事情可能是將日誌存儲在列表中,直到您到達最後,關閉流並打印出列表?我有非常相似的代碼,它適用於我。你可以以某種方式添加更多的日誌來打印出Log.d嗎? –
我不這麼認爲。標籤是不同的。在我看來,打印出來後,readline()就在那裏,聽着logcat ... – OceanBlue