第一你所有常見的行爲,聲明你的父類
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
你應該至少使用一個final static final String server= "http://10.0.2.2:8080"
,然後使用,或更好,使用一個設置或構造在最內部類,並從活動或主控制器中設置值。
你從哪兒弄來'RestAdapter'?我可能知道嗎? – Geros
DRY是什麼意思? – Husyn
你可以使用一些繼承概念 –