私のアプリケーションでは、迷惑な動作があります。それは私のcostumersに問題を引き起こしています。モーダルダイアログが表示されません
このアプリケーションには、ダイアログ(モーダル)を表示する必要があるいくつかのポイントがあり、ユーザーはいくつかのフィールドを入力してからダイアログを閉じることができます。したがって、システムはその自然な経路に従います。
決まった瞬間に、これは問題なく動作します。ダイアログが表示され、ユーザーはそのユーザーと対話して閉じます。
しかし、他のモーメント(同じコード)では、ダイアログは自動的に表示されません。ユーザーは、デバイス上で何らかの外部アクションを実行する必要があります(向きを変更する、画面の中央をタッチする、スクロールジェスチャーを実行するなど)。現時点では直感的ではないアクションです。 この現象は、ユーザーが私のアプリが凍っていると思うようになります。 私にとって、ダイアログが呼び出されたことは明らかです。単に画面に描画されなかっただけです。
私はこの問題について読んでみました。私は同様の質問でいくつかの研究を成功させました。 私は原因がEDTに関係していると思います。
要するに、私はEDTルールを破ることなくダイアログモーダルを呼び出すことができます。 さらに具体的には、この問題をどのように解決できますか。 画面にダイアログを表示するように要求すると、100%のケースで本当に表示されます。今日はランダムに動作します。
追加情報: 私のアプリはまだJava 5を使用しています。 Java 8への移行をお勧めしますか?
=======追加情報(1)===========
この問題は、デバイスモデルの強く依存しています。 MotoG3(Android 6)ではこの問題は例外です。まれに起こります。 私のギャラクシーノート8では逆です。常に発生します。 Lenovo Vibe5(Android 6)の場合。頻繁に発生します。 これらの情報を追加しました。多分問題の写真を合成するのに役立つでしょう。
その他の質問: テンプレートとして使用できるスニペットを書くことは可能ですか EDTのいくつかのルールを破棄せずにダイアログモーダルコールを実行するにはどうすればよいですか?
はい、Java 8に移行してください。最後のjava 5リリースは7年前です。しかし、それは痛みになるだろう... –
あなたのコメントありがとうございました。 – hrugani