0

私は現在、ユーザーがポートレートモードでのみ操作できるBluetoothアプリケーションを作成しています。ただし、Bluetooth 接続が失われたことをユーザーに表示せざるを得ない構成変更の原因となる他の理由がいくつかあります。

デバイスに接続しているときに、パスワードを求めるダイアログが表示されます。このダイアログが表示されている間に構成の変更が発生した場合は、閉じたいと思います。したがって、 (保存されたインスタンスの状態が null でない場合)と同様にonSaveInstanceState、ヘルパー メソッドを呼び出します。onDestroyonCreate

@Override
public void onCreate(Bundle savedInstanceState)
{
    if (savedInstanceState != null)
    {
        this.tryDismiss();
    }
    super.onCreate(savedInstanceState);
}

@Override
public void onSaveInstanceState(Bundle outState)
{
    System.out.println("Saving instance state!");
    this.tryDismiss();

    super.onSaveInstanceState(outState);
}

@Override
public void onDestroy()
{
    System.out.println("Destroying dialogue!");
    this.tryDismiss();

    super.onDestroy();
}

public void tryDismiss()
{
    try
    {
        System.out.println("DIE BART, DIE!");
        this.dismissAllowingStateLoss();
    }
    catch (Exception closingException)
    {
    }
}

ただし、ダイアログは引き続きユーザーに表示されます。同様の質問を読みましたが、この問題の解決策がわかりませんでした。

助けていただければ幸いです。前もって感謝します!

4

2 に答える 2

0

簡単にdismiss()方法ができます

http://developer.android.com/reference/android/app/Dialog.html

于 2015-07-10T15:21:08.930 に答える