2016-07-12 11 views
1

私のアプリケーションに開いたダイアログがあるときなど。 dlg.show();となり、画面がタイムアウトすると、アクティブになり、表示されたダイアログは、画面を再びオンにした後に消えます。私はダイアログをまだプリセットしておきたい。画面が消えた後にダイアログが消える

この現象を修正/回避する方法はありますか?解決のために

、私は次のいずれかの方法を想像することもできますが、より詳細な情報を見つけることができませんでした:

  1. アプリに対してグローバルに画面のタイムアウトを無効にします。
  2. ダイアログの画面タイムアウトを特に無効にします。
  3. 他のダイアログタイプ(modalmodelessまたはinteraction)を使用すると、そのままになります。

多分、これを修正する他の方法がありますか?

答えて

2

「環境設定」の状態を保存する変数を使用します。おそらくブールですので、ダイアログにはそれが当てはまると表示され、誰かがアプリケーションを終了すると、プリファレンスでそれを保存します(フォームの終了アクションを使用するか、ライフサイクルメソッドに何かを追加することができます)。アプリケーションが再起動したら、環境設定から状態を取得し、変数がtrueの場合はダイアログを再度表示します。

表示する必要があるダイアログが複数ある場合は、整数と文字列を使用できます。

+1

また、デフォルトのshow()メソッドがアプリの復元時にブロックされないように、アプリが一時停止されたときにデフォルトの 'stop()'メソッドがダイアログを破棄することにも注意してください。ダイアログが実行中であることを検出して、それが本当に重要であれば再表示する必要があります。シミュレータのsuspend/resumeオプションでこれをデバッグすることができます。 –

+0

ジェームズとシャイには2つの便利で速い答えがありがとうございました。私は環境設定のソリューションが好きです。また、私はシミュレータの中断/再開オプションについて知らなかった - 非常に便利です! – ryru

関連する問題