Android:CalledFromWrongThreadException 在 onProgressUpdate 函数中的 AsyncTask 中

Android:CalledFromWrongThreadException in AsyncTask in the onProgressUpdate function

这是一个非常简单的程序,它会在单击按钮时调用异步任务,从而更改文本视图。

但是在单击按钮时会出现 CalledFromWrongException。

public class FragmentC extends Fragment {
public FragmentC() {
    }
public View contentViewC;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    contentViewC = inflater.inflate(R.layout.fragment_fragment_b, container, false);

    Button button = (Button) contentViewC.findViewById(R.id.button1);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (MainActivity.filepath != "Nothing") {
                Frequency getFreq=new Frequency();
                getFreq.execute();
       }

        }

    });
    return contentViewC;
}
private class Frequency extends AsyncTask<Void, Float, Void> {
    @Override
    protected Void doInBackground(Void... params) {
            onProgressUpdate();
        return null;
    }

    @Override
    protected void onProgressUpdate(Float... values) {
      textToChange.setText("Demo");
    }
}

不要直接调用onProgressUpdate()

您只需从 doInBackground() 调用 publishProgress(),然后 AsynchTask 在 UI 线程中调用 onProgressUpdate()

In Android only in main thread we update the UI

要了解更多信息,请查看此 onProgressUpdate() documnet