AlertDialog
を使用して作成しAlertDialog.Builder
、表示しています。表示した後、ユーザーがダイアログを確認するまでアプリケーションを一時停止する必要があります。
Dialogスレッドを表示しているメソッドで一時停止する必要があります。これは、その呼び出しメソッドが戻り後に致命的なエラーをスローするためです。
それを行う方法はありますか?
AlertDialog
を使用して作成しAlertDialog.Builder
、表示しています。表示した後、ユーザーがダイアログを確認するまでアプリケーションを一時停止する必要があります。
Dialogスレッドを表示しているメソッドで一時停止する必要があります。これは、その呼び出しメソッドが戻り後に致命的なエラーをスローするためです。
それを行う方法はありますか?
Application is not responding
Android では、一時停止してから約 5 秒後に OS にダイアログが表示されるため、UI スレッドを一時停止することはできません。
また、コメントで CommonsWare が述べたように、ダイアログは別のスレッドでは動作しません。
あなたのコードを見ないと答えるのは少し難しいですが、今私が提案できるのは、「一時停止」する必要があるすべてのコードをAsyncTask
.
onPreExecute()
ダイアログを表示するよりも、メソッドの一時停止の前にすべてのコードを配置できます。doInBackground()
メソッドでは、while ループまたは揮発性変数などを含む何かに配置できます (このコードはバックグラウンド スレッドで実行されるため、 UI-Thread) と、onPostExecute()
メソッドの一時停止後のコード。両方onPreExecute()
でありonPostExecute()
、UI スレッドで動作します。が終了onPost
した後に呼び出されdoInBackground
ます。
ただし、一時停止のコードを示していただければ、より簡単にお手伝いできます。
さらに読む: AsyncTask
これを処理する別の方法は、スレッドを使用することです。非 UI スレッドでは、のメソッドを使用してAlertDialog
のメソッドを呼び出します。非 UI スレッドを呼び出し、のを呼び出します。非 UI スレッドは、ユーザーが をクリックするまで待機します。show()
runOnUiThread()
Activity
Object.wait()
Object.notifyAll()
AlertDialog
OnClickListener
AlertDialog