我在android中有一个应用程序,我在那里访问几个REST webservices。我使用AsyncTasks来访问这些并在之后进行一些UI更改。我想在不同的活动中使用其中一些调用。但是,根据我读过的所有教程,AsyncTasks在活动中用作内部类(这是有道理的,因为它们正在改变这些活动中的视图)。但是如何解决这些AsyncTasks的可重用性呢?更重要的是,我想说我想在位置变化时做一些AsyncTasks调用。我有一个LocationListener(它是一个单独的外部类),我想在onLocationChange()方法中进行API调用。但我无法访问我想要的观点,因为我不在活动类中。有没有人有一个很好的解决方案或想法如何做类的架构?谢谢。
答案 0 :(得分:4)
您可以将Async任务创建为单独的类,而不是在任何活动中集成。
示例代码位于:::
之下 public class KeyTask extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
Log.i("onPreExecute", ".onPreExecute() — start");
}
@Override
protected String doInBackground(Void ... params) {
Log.i("TransmissionKeyTask", ".doInBackground() — start");
}
@Override
protected void onPostExecute(String result) {
Log.i("onPostExecute", ".onPostExecute() — start");
}
}
甚至你在下面添加构造函数::
public KeyTask(Context context) {
// TODO Auto-generated constructor stub
}