0

選択可能な項目をダイアログに表示する機能があります。次のようになります。

void showListDialog()
{
if (!_dialogIsOpen) {
    _dialogIsOpen = true;
    final Activity instance = this;

    runOnUiThread(new Runnable() 
    {
        public void run() 
        {   
            //Building the List to display

            AlertDialog alert = builder.create();
            alert.setOnDismissListener(new DialogInterface.OnDismissListener() 
            {                       
                @Override
                public void onDismiss(DialogInterface dialog) {
                    _dialogIsOpen = false;                          
                }
            });
            alert.show();
        }
    });
}
}

ここで、呼び出しをスレッドセーフにしたいと思います。今のところ、「_dialogIsOpen」という名前のブール フィールドでチェックを使用していることがわかります。そのフィールドへのアクセスは同期されていません!

私の質問は、この関数をスレッドセーフにするために何を変更する必要があるかです。また、UiThread で「runnable」を使用することが、UI にサブ ダイアログを表示するのに適している場合。

4

0 に答える 0