0

AlertDialogを使用して作成しAlertDialog.Builder、表示しています。表示した後、ユーザーがダイアログを確認するまでアプリケーションを一時停止する必要があります。

Dialogスレッドを表示しているメソッドで一時停止する必要があります。これは、その呼び出しメソッドが戻り後に致命的なエラーをスローするためです。

それを行う方法はありますか?

4

2 に答える 2

0

Application is not respondingAndroid では、一時停止してから約 5 秒後に OS にダイアログが表示されるため、UI スレッドを一時停止することはできません。

また、コメントで CommonsWare が述べたように、ダイアログは別のスレッドでは動作しません。

あなたのコードを見ないと答えるのは少し難しいですが、今私が提案できるのは、「一時停止」する必要があるすべてのコードをAsyncTask.

onPreExecute()ダイアログを表示するよりも、メソッドの一時停止の前にすべてのコードを配置できます。doInBackground()メソッドでは、while ループまたは揮発性変数などを含む何かに配置できます (このコードはバックグラウンド スレッドで実行されるため、 UI-Thread) と、onPostExecute()メソッドの一時停止後のコード。両方onPreExecute()でありonPostExecute()、UI スレッドで動作します。が終了onPostした後に呼び出されdoInBackgroundます。

ただし、一時停止のコードを示していただければ、より簡単にお手伝いできます。

さらに読む: AsyncTask

于 2013-01-19T14:56:10.720 に答える
0

これを処理する別の方法は、スレッドを使用することです。非 UI スレッドでは、のメソッドを使用してAlertDialogのメソッドを呼び出します。非 UI スレッドを呼び出し、のを呼び出します。非 UI スレッドは、ユーザーが をクリックするまで待機します。show()runOnUiThread()ActivityObject.wait()Object.notifyAll()AlertDialogOnClickListenerAlertDialog

于 2014-04-11T18:21:25.523 に答える