我是比較新的(ISH)到Java ..的Android類嵌套的AsyncTask
我寫一個Android應用程序,現在我過我的代碼走去,整理和堅持我的編碼結構,以更最佳實踐風格。
我正在構建方法和類,因爲我認爲適合避免我生成的大量重複代碼。我發現自己試圖創建一個包含幾個AsyncTask方法的類(例如HeavyStuff.java)(例如MyTask1和MyTask2)。當從一個activity中調用這個類時,我想在某個時候執行MyTask1,並且在其他地方我想執行MyTask2。我試圖使用分別如下:
HeavyStuff.MyTask1 myTask1 = new HeavyStuff.MyTask1();
myTask1.execute();
而且
HeavyStuff.MyTask2 myTask2 = new HeavyStuff.MyTask2();
myTask2.execute();
的問題是,我得到一個錯誤,指出「HeavyTest不是一個封閉類」。我的階級是這樣的:
package com.wizzkidd.myapp;
import android.os.AsyncTask;
public class HeavyStuff {
public class MyTask1 extends AsyncTask<String, String, String> {
//...
//...
}
public class MyTask2 extends AsyncTask<String, String, String> {
//...
//...
}
}
類也可以在這裏看到滿:http://hastebin.com/yahihokupu
我缺少所需使課堂的「封閉班」。
----- -----編輯
我看着那個被給了作爲一個可能重複我的問題的答案,這是行不通的。給出的答案建議使用static
爲我的內部類,但這不適合我。
我也不過發現我可以這樣做:
HeavyStuff.MyTask1 myTask1 = new HeavyStuff().new MyTask1();
myTask1.execute();
它的工作原理,但會造成什麼影響這樣做時,它(如果有的話)?這是不好的做法嗎?
的可能的複製[不是一個封閉級的Java(http://stackoverflow.com/questions/20252727/IS-不-AN-包圍級-java的) – earthw0rmjim