一度にいくつかの AsyncTasks を実行していますが、ボタンが使用できなくなるなどの特有の問題が発生しているようです。1 つの AsyncTask がセッションを存続させ、すべてのアクティビティで onResume() で実行されます。
public class SessionKeepAliveTask extends AsyncTask<Void, Void, Void> {
private Context mContext;
public SessionKeepAliveTask(Context context) {
mContext = context;
}
@Override
protected Void doInBackground(Void... params) {
try {
... create httpClient, set headers with cookie,
send request, process results
...
次に、単純にサーバーから JSON オブジェクトをフェッチし、結果をリストビューにロードするために使用される別の AsyncTask があります。
public class ClaimSearchService extends AsyncTask<HashMap<String,String>, Void, Void> {
protected Context mContext;
private Listener mListener = null;
public ClaimSearchService(Listener listener, Context context) {
super();
mListener = listener;
mContext = context;
}
@Override
protected Void doInBackground(HashMap<String,String>... params) {
try {
...send the request, get the results, pass them to listener for
processing in another activity
SessionKeepAliveTask タスクを実行しない場合、検索サービスは意図したとおりに機能しますが、実行すると、予期しないバグが発生します。私は確かな答えよりも、この問題のデバッグを開始する方法を知りたいと思っていますが、明らかに、その前に誰かがこれに遭遇した場合は素晴らしいでしょう. DDMS モニターで現在のスレッドを確認できますが、その使用方法が正確にはわかりません。