Что я хочу:
Я разрабатываю одно приложение, в котором я хочу отображать диалог / всплывающее окно при входящем звонке.
Я заметил в журнале, что есть небольшая задержка между началом моей активности при входящем звонке и включением экрана телефона. Сначала запускается действие, а затем включается экран телефона.
Поэтому я хочу отображать это диалоговое окно после включения экрана телефона. Короче хочу подождать пока телефон включится.
Что я пробовал:
Я использовал Asynctask в BroadcastReceiver
protected Boolean doInBackground(Void... params) {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
isScreenOn = powerManager.isInteractive();
return isScreenOn;
}
и последовал ответ это. Но это дает мне исключение времени компиляции
необработанное исключение java.util.concurrent.executionexception даже после долгих поисков в Google я не смог решить эту проблему. Поэтому я использовал другой подход.
(* Обратите внимание, что у меня уже есть приемник трансляции входящих вызовов)
Но я не могу понять, как приемник широковещательной передачи входящего вызова будет связываться с приемником широковещательной передачи экрана телефона и ждать, пока экран телефона не загорится.
Любые указатели / предложения?
После долгих попыток решить эту проблему, наконец, удалось ее решить. Отправка ответа, если кто-то еще борется с аналогичной проблемой.
case TelephonyManager.CALL_STATE_RINGING: //Incoming Call Ringing
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//Calling activity to show dialog / popup window.
}
}, 1000);
Это было так просто. Уф !!