4

我在 android 中有一个应用程序,我正在访问几个 REST web 服务。我正在使用 AsyncTasks 来访问这些并在之后进行一些 UI 更改。我想在不同的活动中使用其中一些调用。然而,根据我读过的所有教程,AsyncTasks 被用作活动中的内部类(这是有道理的,因为它们正在改变这些活动中的视图)。但是我怎样才能解决那些 AsyncTask 的可重用性呢?更重要的是,假设我想在位置更改时执行一些 AsyncTasks 调用。我有一个 LocationListener (这是一个单一的外部类),我想在 onLocationChange() 方法内部进行 API 调用。但我无法访问我想要的视图,因为我不在活动课程中。有没有人有一个很好的解决方案或想法如何做类的架构?谢谢你。

4

1 回答 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 回答