从不同类的AsyncTask消息中更改TextView

时间:2015-09-01 12:16:36

标签: android android-asynctask

我正在使用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中听到一个循环?

1 个答案:

答案 0 :(得分:0)

如果您希望看到多个进度值

,则publishProgress应该在您的循环中