我想從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
替代解決方案。