我在 android 中有一个应用程序,我正在访问几个 REST web 服务。我正在使用 AsyncTasks 来访问这些并在之后进行一些 UI 更改。我想在不同的活动中使用其中一些调用。然而,根据我读过的所有教程,AsyncTasks 被用作活动中的内部类(这是有道理的,因为它们正在改变这些活动中的视图)。但是我怎样才能解决那些 AsyncTask 的可重用性呢?更重要的是,假设我想在位置更改时执行一些 AsyncTasks 调用。我有一个 LocationListener (这是一个单一的外部类),我想在 onLocationChange() 方法内部进行 API 调用。但我无法访问我想要的视图,因为我不在活动课程中。有没有人有一个很好的解决方案或想法如何做类的架构?谢谢你。
问问题
5081 次
1 回答
4
您可以将异步任务创建为单独的类,而不是集成到任何活动中。
示例代码如下:::
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
}
于 2012-04-24T16:34:21.433 回答