私はデータを非同期的に取得し、このデータをプロットし、ロジックを完成させました。もちろん、これをスムーズに実行する必要があるため、ビットマップに消化され、それに応じてプロットされたデータを取得するときに AsyncTask を使用します。もちろん、ループで実行されますAsyncTask がないと動作しますが、遅い/古いデバイスでは動きが鈍くなります。
アイテムには 5 つの異なるフレーバーがあるため、Asynctask の新しいインスタンスを作成し、execute を呼び出してその新しいインスタンスを実行するときに、適切にパラメーターを設定します。
特定のフレーバーの特定のタスクがすでに実行されている場合、それを確認する方法??? そのタイプのデータの処理が完了するまでスキップするように??? さまざまなデータ型を渡す必要があったため、オブジェクトのリストを使用しましたが、それは機能します
KISS が AsyncTask の 5 つの異なるインスタンスを作成し、 taskInstance_n.getStatus() != AsyncTask.Status.RUNNINGをチェックすることであることは知っています が、それを行うためのよりクリーンでよりクールな一般的な方法があるかもしれないと思いました????
ArrayList<Object>parms = new ArrayList<Object>
...
do
{
..grab the data ...
switch(id)
{
case 0:
parms.clear();
parms.add(arg1);
parms.add((type1)arg2)
parms.add((type2)arg3)
if( ! task is running with arg1) ---->how do I do this
new myAsyncTask().execute(parms,null,null);
break;
case 1:
... other 4 choices simar way to call it
} // end of switch
...
}while(i_get_data)