0
我想運行諸如ping(或任何其他連續輸出)的可執行文件,並讀取其輸出並將其打印在我的GUI中。從java(Android)運行外部命令並讀取連續輸出
我用下面的方法來執行我的命令:
command=Runtime.getRuntime().exec("ping www.google.com");
,我讀輸出如下:
BufferedReader in = new BufferedReader(new InputStreamReader(command.getInputStream()));
while ((line = in.readLine()) != null) {
System.out.println(line+"\n");
}
這工作得很好,雖然顯示輸出時已經很遲相比,服用時時間我使用adb -d shell執行./excutable。
因爲我想這個輸出(線)在圖形用戶界面,所以我做一個TextView和其附加的輸出(線):
txtview=(TextView)findViewById(R.id.textview);
while ((line = in.readLine()) != null) {
txtview.append(line+"\n");
System.out.println(line+"\n");
}
但這種崩潰我的應用程序。 請告訴我如何克服這個問題。
但是,我如何讀取使用AsyncTask的BufferedReader並在TextView中顯示每行(因爲它們在BufferedReader中)? – d34th4ck3r
您在doInBackground期間閱讀文本。您可以將每行傳遞給onProgressUpdate並更新其中的UI,也可以更新類成員變量。底線,你*有*做後臺線程閱讀! – elevine
如何將String作爲參數傳遞給onProgressUpdate? – d34th4ck3r