首先你用所有常见的行为声明你的父类
public abstract class MyAbstractTask extends AsyncTask<String, String, String> {
protected void someMethod() { //note that i change private to protected
final RestAdapter restAdapter = new RestAdapter.Builder().setServer("http://10.0.2.2:8080").build();
final MyTaskService apiManager = restAdapter.create(MyTaskService.class);
}
}
然后,你用每一个任务扩展它
public class MyTask extends MyAbstractTask {
//your someMethod() is available from everywhere in your class
}
public class MyOtherTask extends MyAbstractTask {
//your someMethod() is available from everywhere in your class
}
但我不知道您在哪里使用 restAdapter 和 apiManager,以及是否实际上需要为每个任务创建一次,因为您可能可以在这些任务之外创建它。
如果你在外面创建它们,然后你需要在你的任务中使用一些东西,记住 Dependency_injection模式也是很好的。
此外,您应该避免在类中硬编码值,例如 http://10.0.2.2:8080
您应该至少使用 afinal static final String server= "http://10.0.2.2:8080"
然后使用它,或者更好的是,在最内部的类中使用 setter 或构造函数,并从活动或主控制器设置 tha 值。