我有一个活动,在里面我有一个名为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
}
}
答案 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++
所以每次创建新对象时 计数器递增,您将获得计数 对象创建。