我正在使用AsyncTask
在Android中运行我的bash脚本:
@Override
protected Map<String, String> doInBackground(String... params){
//some code...
ProcessScript processScript = new ProcessScript();
processScript.setActivity(activity);
processScript.runScript();
this.publishProgress(processScript.getLine());
//some code..
return statusMap;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
TextView display = (TextView) activity.findViewById(R.id.LogView);
display.setText(values[0]);
Log.d("lab", "onPUP: " + values[0]);
}
runScript
函数运行脚本,然后函数runScript打印脚本生成的输出信息。我希望这些信息立即传递给onProgressUpdate
,并想知道如何做到这一点。
我ProcessScript
班的代码:
//some code
while ((line = bufferedReader.readLine()) != null) {
log.append(line + "\n");
Log.d("lab", line);
setLine(line);
}
此代码有效,但只显示日志的最后一行。如何改进它以便onProgresUpdate
从打印日志的ProcessScript
中听到一个循环?
答案 0 :(得分:0)
如果您希望看到多个进度值
,则publishProgress应该在您的循环中