-1

非同期タスクは、実行中に画面に触れるとキャンセルされ始めます.Android 2.3.6を使用してサムスンポップでアプリケーションをテストしました.このモバイルでは、実行中に画面に触れても非同期タスクはキャンセルされません.しかし、Android 4.0.1 を使用して Sony u でテストしまし た。画面にタッチすると、非同期タスクがキャンセルされます。タッチ イベントを非同期ステータスでオーバーライドしようとしましたが、修正されません。これを解決するにはどうすればよいですか?

4

1 に答える 1

2

私は解決策を見つけました

私が使う

dialog.setCanceledOnTouchOutside(false); dialog.setCancelable(false);

public class getcatogry extends AsyncTask<String, Void, Void> {

    private final ProgressDialog dialog = new ProgressDialog(
            MainActivity.this);

    // can use UI thread here
    protected void onPreExecute() {
        this.dialog.setMessage("Loading...");
        this.dialog.show();
        dialog.setCanceledOnTouchOutside(false);
        dialog.setCancelable(false);
    }

    // automatically done on worker thread (separate from UI thread)
    protected Void doInBackground(final String... args) {
        dialog.setCanceledOnTouchOutside(false);
        dialog.setCancelable(false);






        return null;
    }

    // can use UI thread here
    protected void onPostExecute(final Void unused) {
        if (this.dialog.isShowing()) {
            this.dialog.dismiss();




        }
        // reset the output view by retrieving the new data
        // (note, this is a naive example, in the real world it might make
        // sense
        // to have a cache of the data and just append to what is already
        // there, or such
        // in order to cut down on expensive database operations)
        // new SelectDataTask().execute();
    }
}

このようにして、バックプレスまたはタッチ非同期タスクでも非同期タスクがキャンセルされません

于 2012-11-09T09:08:14.757 に答える