如何计算内部类创建的对象数

时间:2016-06-08 09:31:43

标签: java android android-asynctask static inner-classes

我有一个活动,在里面我有一个名为AsyncTask的类。在AsyncTask类中,我想将计数器声明为静态变量,但我不能,因为AsyncTask类被假定为mainActivity的内部类。

有没有办法在AsycTask“内部类”中创建静态变量来计算AsyncTask创建的对象数量?

class MainActivity extends Activity {
    ....
    ....
    ....
    ....

    class MyAsync extends AsyncTask <void, Void, Void> {

        private static int counter = 0; // is not possible here
    }

}

3 个答案:

答案 0 :(得分:4)

你可以这样做:

class MainActivity extends Activity {
    private static int counter = 0;

    // ...

    static class MyAsync extends AsyncTask <Void, Void, Void> {

        private MyAsync() {
            counter++;
        }

        // ...
    }
}

这种方式counter每次创建MyAsync的新实例时都会递增。

答案 1 :(得分:2)

您也可以使用静态内部类。

<强>码

class MainActivity extends Activity {
    ....
    ....
    ....
    ....

    static class MyAsync extends AsyncTask <void, Void, Void> {

        private static int counter = 0; // is not possible here
    }

}

答案 2 :(得分:1)

您可以创建一个构造函数来增加counter内的AsyncTask

这样做:

class MainActivity extends Activity {
....
....
....
....
    int counter = 0; 
    class MyAsync extends AsyncTask <void, Void, Void> {

       MyAsync()
       {
           counter++;
       }
    }

}
  

这背后的逻辑是:将调用任何类的构造函数   每次创建新对象时。内部构造函数   我们有counter++所以每次创建新对象时   计数器递增,您将获得计数   对象创建。

相关问题