简体   繁体   English

Android应用程序AsyncTask中的错误

[英]Error in Android application 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) {

        }

    }

I am new to Android and Googled a lot but not getting the context. 我是Android的新手,但在Google上搜索了很多,但没有获得相关内容。 I am performing matrix multiplication of very large number using AsyncTask but getting error. 我正在使用AsyncTask执行非常大的矩阵乘法运算,但出现错误。 Any help will be appreciated. 任何帮助将不胜感激。

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

add the onPostExecute inside the AsyncTask Class. 在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()。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM