0

私のアプリケーション-n個のjpg画像からgif画像を作成します。この方法では多くの画像を読み取る必要があるため、時間がかかります。このメソッドの実行時にprogressdialogを表示したいと思います。私を助けてください、どんなアイデアやソースコードの例でも!ありがとう

4

2 に答える 2

2

UI スレッドで実行するだけの場合 (非推奨)、次のようになります。

private void myMethodThatTakesALongTime() {
    ProgressDialog progressDialog;
    progressDialog = new ProgressDialog( getActivity() );
    progressDialog.setIndeterminate( true );
    progressDialog.setMessage( "Please Wait..." );
    progressDialog.show();

    // Do expensive operations

    progressDialog.dismiss();
}

これらすべてを AsyncTask に入れることをお勧めします。次のようになります。

private class MyAsyncTask extends AsyncTask<String, String, String> {

    private ProgressDialog progressDialog;

    protected void onPreExecute() {

        //show your dialog before you start

        progressDialog = new ProgressDialog( getActivity() );
        progressDialog.setIndeterminate( true );
        progressDialog.setMessage( "Please Wait..." );
        progressDialog.show();
    }

    @Override
    protected String doInBackground( String... params ) {

        // do expensive operations in here

        return null;
    }

    @Override
    public void onPostExecute( String result ) {

        //dismiss your dialog when done

        if ( progressDialog != null && progressDialog.isShowing() ) {

            progressDialog.dismiss();
        }
    }
}

そして、次の行を使用してこれを開始します。

new MyAsyncTask().execute( String[] {} );
于 2012-10-22T17:03:11.010 に答える
0

ここで 2 つのことを行う必要があります。最初にoncreateDialog () メソッドを使用してダイアログを作成します。次に、非同期タスクを使用して長時間実行されるタスクを実行する必要があります。非同期タスクの起動中にダイアログを表示できます。タスクを終了してアクティビティに戻ると、再び閉じることができます。

于 2012-10-22T16:38:50.377 に答える