0

私はアンドロイドが初めてで、この状況に悩まされています

アクティビティ UI からスレッドを呼び出しています。バックグラウンド操作を行った後、スレッドはコールバック関数に戻ります。

それまでは、アクティビティ UI で待機中の通知を表示する必要があります。[コールバックが戻るまでアプリを効果的にフリーズします]

ステータスフラグと非同期タスクを試しましたが、部分的に成功しました。

この問題の最適解を教えてください。

4

2 に答える 2

0

スレッドを開始する前に進行状況を表示し、戻る直前に進行状況ダイアログを閉じます。

進行状況ダイアログの詳細については、次のリンクを参照してください:http: //developer.android.com/reference/android/app/ProgressDialog.html

于 2013-02-14T12:08:19.847 に答える
0

スレッドを開始する直前に進行状況ダイアログ ボックスを表示する必要があります。

  private CustomizeDialog mCustomizeDialog = null;
  //in onCreate method
 mSubmitButton.setOnClickListener(new OnClickListener() {
 public void onClick(View v) {
   //checking few condition 
   mCustomizeDialog = new CustomizeDialog(makeRequestActivity.this);
   mCustomizeDialog.setTitle("Confirmation");
   mCustomizeDialog.setMessage("Make Request?");
    mCustomizeDialog.okButton.setOnClickListener(new OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                mCustomizeDialog.dismiss();
                                show();
     });
mCustomizeDialog.show();
   private void show() {
                                mCustomizeDialog = new CustomizeDialog(makeRequestActivity.this);
                                mCustomizeDialog.setTitle("Requesting");
                                mCustomizeDialog.setMessage("Connecting...");
                                mCustomizeDialog.okButton.setVisibility(View.GONE);
                                mCustomizeDialog.cancelButton.setVisibility(View.GONE);
                                mCustomizeDialog.show();
                    }

そして私の放送受信機で

  private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
    public void onReceive(Context context, Intent intent) {
           if (intent.getAction().equals(request.CUSTOM_INTENT_MENU)) {
            mExtras = intent.getExtras();
            String result = mExtras.getString("tag");
            if (mCustomizeDialog.isShowing()) {
                mCustomizeDialog.dismiss();
            }
           }
};
于 2013-02-14T12:43:04.147 に答える