Android应用程序AsyncTask错误


public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    new asyncExample().execute("Hello");
}

private class asyncExample extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... params) {
        System.out.print("Enter number of rows in A: ");
        int rowsInA = 10;
        System.out.print("Enter number of columns in A / rows in B: ");
        int columnsInA = 10;
        System.out.print("Enter number of columns in B: ");
        int columnsInB = 10;
        int[][] a = new int[rowsInA][columnsInA];
        int[][] b = new int[columnsInA][columnsInB];
        System.out.println("Enter matrix A");
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[0].length; j++) {
                a[i][j] = 10;
            }
        }
        System.out.println("Enter matrix B");
        for (int i = 0; i < b.length; i++) {
            for (int j = 0; j < b[0].length; j++) {
                b[i][j] = 10;
            }
        }
        int[][] c = multiply(a, b);
        System.out.println("Product of A and B is");
        for (int i = 0; i < c.length; i++) {
            for (int j = 0; j < c[0].length; j++) {
                System.out.print(c[i][j] + " ");
            }
            System.out.println();
        }
        return null;
    }
}
public int[][] multiply(int[][] a, int[][] b) {
            int rowsInA = a.length;
            int columnsInA = a[0].length; // same as rows in B
            int columnsInB = b[0].length;
            int[][] c = new int[rowsInA][columnsInB];
            for (int i = 0; i < rowsInA; i++) {
                for (int j = 0; j < columnsInB; j++) {
                    for (int k = 0; k < columnsInA; k++) {
                        c[i][j] = c[i][j] + a[i][k] * b[k][j];
                    }
                }
            }
            return c;
        }
        @Override
        protected void onPostExecute(String result) {
        }
    }

我是Android的新手,谷歌了很多,但没有得到上下文。我正在使用AsyncTask执行非常大的数字的矩阵乘法,但得到错误。如有任何帮助,不胜感激。

Error:(77, 13) error: method does not override or implement a method from a supertype

在AsyncTask类中添加onPostExecute。

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    new asyncExample().execute("Hello");
  }
  private class asyncExample extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... params) {
      System.out.print("Enter number of rows in A: ");
      int rowsInA = 10;
      System.out.print("Enter number of columns in A / rows in B: ");
      int columnsInA = 10;
      System.out.print("Enter number of columns in B: ");
      int columnsInB = 10;
      int[][] a = new int[rowsInA][columnsInA];
      int[][] b = new int[columnsInA][columnsInB];
      System.out.println("Enter matrix A");
      for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a[0].length; j++) {
           a[i][j] = 10;
        }
      }
      System.out.println("Enter matrix B");
      for (int i = 0; i < b.length; i++) {
         for (int j = 0; j < b[0].length; j++) {
            b[i][j] = 10;
         }
      }
      int[][] c = multiply(a, b);
      System.out.println("Product of A and B is");
      for (int i = 0; i < c.length; i++) {
         for (int j = 0; j < c[0].length; j++) {
           System.out.print(c[i][j] + " ");
         }
         System.out.println();
      }
      return null;
    }
    public int[][] multiply(int[][] a, int[][] b) {
      int rowsInA = a.length;
      int columnsInA = a[0].length; // same as rows in B
      int columnsInB = b[0].length;
      int[][] c = new int[rowsInA][columnsInB];
      for (int i = 0; i < rowsInA; i++) {
         for (int j = 0; j < columnsInB; j++) {
            for (int k = 0; k < columnsInA; k++) {
               c[i][j] = c[i][j] + a[i][k] * b[k][j];
            }
         }
      }
      return c;
    }
    @Override
    protected void onPostExecute(String result) {
    }
  }
}

你可以在AsyncTask中添加onPostExecute()方法

最新更新