目標: 次のアクティビティが完全に読み込まれて画面に表示されるまで、「読み込み中...」と表示される ProgressDialog を用意します。
ProgressDialog コンテキストとアクティビティを元のアクティビティに設定してみました。getApplicationContext() と getParentContext() も試してみました。最後の 2 つのアプローチの例外。単純でないレイアウト ファイルが原因で宛先アクティビティのレンダリングが遅いため、これを行う必要があります。(組織の問題のため、現在は修正できません。) 目的のアクティビティが OnCreate に 1 ~ 2 秒かかり、画面が最大 5 秒以上黒くなり、ペイントすることが判明しました。レンダリングが遅いだけです。Hierarchy Viewer で確認したところ、多くの赤いボールが表示されましたが、現在は修正できません。
関連するいくつかを読んでくださいが、修正は見つかりませんでした。たとえば、コンテキストを取得するためのさまざまな方法の違いは何ですか?
たとえば、これらの両方がクラッシュします。ソースアクティビティの「this」を使用しても機能しません。
// Context parentContext = this.getParent().getBaseContext();
Context parentContext = this.getApplicationContext();
ProgressDialogMenuable theProgressDialog = new ProgressDialogMenuable(parentContext,this);
theProgressDialog.setTitle("yeeha");
theProgressDialog.setMessage("weewah");
theProgressDialog.setIndeterminate(true);
theProgressDialog.setCancelable(true);
theProgressDialog.show();
また、奇妙なことに、これを行っても何も起こりません: theProgressDialog.show(); ActivityHelper.changeActivity(これ、v、InsMyHoldingsActivity.class、extraMap、-1、-1); ユーザーはボタンをクリックして次のアクティビティを表示しますが、ProgressDialog がアクティビティの起動と競合し、ボタンが黄色のオンタッチになる以外は実際には何も起こりません。下のボタンが機能します。ProgressDialog の作成を削除すると機能します。コンソール メッセージは記録されません。確かに、開発者にとっては少し不快です。