我想从class C
访问class B
(AsyncTask
的子类别),其中class B
是class A
的内部班级。从新班级取得班级
我的代码结构是
class A{
class B extends AsyncTask<>(){
}
}
class C{
public void method() {
//here I want to access class B.
}
}
请帮助我。
我想从class C
访问class B
(AsyncTask
的子类别),其中class B
是class A
的内部班级。从新班级取得班级
我的代码结构是
class A{
class B extends AsyncTask<>(){
}
}
class C{
public void method() {
//here I want to access class B.
}
}
请帮助我。
class A{
Class B extends AsyncTask<>(){
}
}
Class C{
public void method()
{
//First create root class object. Then call sub class and execute it as
//below
new ClassA().new ClassB().execute();
}
}
首先将Class B
设为公共。
class A{
public class B extends AsyncTask<>(){
}
}
然后在你的Class C
方法中调用它。
class C{
public void method(){
A a = new A();
A.B b = a.new B();
b.execute();
}
}
作为一般的注意:避免内部类AsyncTask
因为它可以导致内存泄漏,因为它保存到你的class A
的隐式引用。这意味着,即使class A
被破坏,您的AsyncTask
可能会存活并且不会释放您的class A
,所以这是内存泄漏。
最简单的解决方案是使AsyncTask
为静态。
class A{
public static class B extends AsyncTask<>(){
}
}
class C{
public void method(){
B b = new B();
b.execute();
}
}
除了使内AsyncTask
子类为静态,你也可以考虑作为WeakReference
替代解决方案。