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 中使用“可运行”是在 ui 上显示子对话框的好主意。

4

0 回答 0