Java 具有嵌套异步任务的Android类
我对Java比较陌生 我正在编写一个Android应用程序,现在我将回顾我的代码,整理并坚持我的编码结构,使之更符合最佳实践风格 我正在构建我认为合适的方法和类,以避免产生大量重复代码。我发现自己正在尝试创建一个类(例如HeavyStuff.java),其中包含几个AsyncTask方法(例如MyTask1和MyTask2)。从活动调用类时,我希望在某个点执行MyTask1,在其他点执行MyTask2。我试图分别使用以下内容:Java 具有嵌套异步任务的Android类,java,android,class,android-asynctask,inner-classes,Java,Android,Class,Android Asynctask,Inner Classes,我对Java比较陌生 我正在编写一个Android应用程序,现在我将回顾我的代码,整理并坚持我的编码结构,使之更符合最佳实践风格 我正在构建我认为合适的方法和类,以避免产生大量重复代码。我发现自己正在尝试创建一个类(例如HeavyStuff.java),其中包含几个AsyncTask方法(例如MyTask1和MyTask2)。从活动调用类时,我希望在某个点执行MyTask1,在其他点执行MyTask2。我试图分别使用以下内容: HeavyStuff.MyTask1 myTask1 = new H
HeavyStuff.MyTask1 myTask1 = new HeavyStuff.MyTask1();
myTask1.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> {
//...
//...
}
}
它是有效的,但这样做有什么意义(如果有的话)?这是一种不好的做法吗?我知道您将
MyTask1
和MyTask2
放在同一个类中,因为它们相似,但总的来说这并不理想
如果您计划在整个代码库中创建MyTask1
的新实例以及MyTask2
的新实例,那么它们应该位于各自完全独立的类中(即MyTask1.java
仅包含类MyTask1
)
通过将它们放在同一个java包中,您仍然可以将它们“放在一起”,例如:
package.heavystuff
.我找到了我问题的答案。我最初发布了我认为是一个编辑解决方案,但为了澄清,这是我的工作答案:
HeavyStuff.MyTask1 myTask1 = new HeavyStuff().new MyTask1();
myTask1.execute();
可能重复的
package.heavystuff
HeavyStuff.MyTask1 myTask1 = new HeavyStuff().new MyTask1();
myTask1.execute();