4

私はAndroidにアプリケーションを持っており、そこでいくつかのRESTWebサービスにアクセスしています。私はAsyncTasksを使用してこれらにアクセスし、その後にいくつかのUI変更を行っています。これらの呼び出しのいくつかをさまざまなアクティビティで使用したいと思います。ただし、私が読んだすべてのチュートリアルによると、AsyncTasksはアクティビティの内部クラスとして使用されます(これらのアクティビティのビューを変更しているため、これは理にかなっています)。しかし、どうすればそれらのAsyncTasksの再利用性を解決できますか?さらに、場所の変更時にいくつかの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 に答える