Java tutorial
//package com.java2s; /* * Copyright 2011 Torsten Rmer * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.lang.reflect.Field; import android.app.Activity; import android.app.Dialog; public class Main { public static Dialog waitForCurrentDialogShowing(final Activity activity, final long timeout) throws InterruptedException { long start = System.currentTimeMillis(); try { Field currentDialogField = activity.getClass().getDeclaredField("currentDialog"); currentDialogField.setAccessible(true); Dialog dialog = null; while (dialog == null || !dialog.isShowing()) { dialog = (Dialog) currentDialogField.get(activity); Thread.sleep(50); long now = System.currentTimeMillis(); if (now - start > timeout) { throw new InterruptedException( String.format("Timeout exceeded while waiting for dialog showing")); } } return dialog; } catch (Exception e) { throw new InterruptedException(String.format("Exception while waiting for dialog showing")); } } }