私はアンドロイドが初めてで、この状況に悩まされています
アクティビティ UI からスレッドを呼び出しています。バックグラウンド操作を行った後、スレッドはコールバック関数に戻ります。
それまでは、アクティビティ UI で待機中の通知を表示する必要があります。[コールバックが戻るまでアプリを効果的にフリーズします]
ステータスフラグと非同期タスクを試しましたが、部分的に成功しました。
この問題の最適解を教えてください。
私はアンドロイドが初めてで、この状況に悩まされています
アクティビティ UI からスレッドを呼び出しています。バックグラウンド操作を行った後、スレッドはコールバック関数に戻ります。
それまでは、アクティビティ UI で待機中の通知を表示する必要があります。[コールバックが戻るまでアプリを効果的にフリーズします]
ステータスフラグと非同期タスクを試しましたが、部分的に成功しました。
この問題の最適解を教えてください。
スレッドを開始する前に進行状況を表示し、戻る直前に進行状況ダイアログを閉じます。
進行状況ダイアログの詳細については、次のリンクを参照してください:http: //developer.android.com/reference/android/app/ProgressDialog.html
スレッドを開始する直前に進行状況ダイアログ ボックスを表示する必要があります。
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();
}
}
};