我是比较新的(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