0

我正在创建一个AlertDialogAlertDialog.Builder显示它。显示后,我需要暂停应用程序,直到用户确认对话框。

我确实需要在显示 Dialog 线程的方法中暂停,因为它的调用方法在返回后会引发致命错误。

有没有办法做到这一点?

4

2 回答 2

0

另一种处理方法是使用线程。在非 UI 线程中AlertDialogshow()使用runOnUiThread(). Activity调用Object.wait()您的非 UI 线程,并调用Object.notifyAll()AlertDialogOnClickListener. 然后,非 UI 线程将等到用户单击您的AlertDialog.

于 2014-04-11T18:21:25.523 回答
0

在 Android 中,您不能暂停 UI 线程,因为它会导致操作系统Application is not responding在暂停大约 5 秒后显示对话框。

此外,正如 CommonsWare 在评论中提到的,对话框不在单独的线程中运行。

如果没有看到您的代码,这有点难以回答,但我现在可以建议的是将您需要“暂停”的所有代码放在AsyncTask.

您可以将所有代码放在方法中的暂停之前onPreExecute(),而不是显示您的对话框,并在doInBackground()方法中,可能在一个while循环或带有易失变量或其他东西的东西中(此代码在后台线程上运行,因此它不会卡住UI-Thread),然后是onPostExecute()方法中暂停后的代码。两者都onPreExecute()onPostExecute()UI 线程上运行。完成后onPost调用doInBackground

但是同样,如果您要显示一些暂停代码,它会更容易帮助您。

进一步阅读:异步任务

于 2013-01-19T14:56:10.720 回答