Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 等待手机屏幕打开_Android_Broadcastreceiver_Android Service - Fatal编程技术网

Android 等待手机屏幕打开

Android 等待手机屏幕打开,android,broadcastreceiver,android-service,Android,Broadcastreceiver,Android Service,我想要什么: 我正在开发一个应用程序,我想在来电时显示对话框/弹出窗口 我在日志中观察到,在我的来电活动开始和手机屏幕启动之间有轻微的延迟。首先启动活动,然后打开手机屏幕 所以我想在手机屏幕打开后显示这个对话框。简言之,我想等到电话接通 我的尝试: 我在BroadcastReceiver中使用了Asynctask protected Boolean doInBackground(Void... params) { PowerManager powerManager = (PowerMa

我想要什么:

我正在开发一个应用程序,我想在来电时显示对话框/弹出窗口

我在日志中观察到,在我的来电活动开始和手机屏幕启动之间有轻微的延迟。首先启动活动,然后打开手机屏幕

所以我想在手机屏幕打开后显示这个对话框。简言之,我想等到电话接通

我的尝试:

  • 我在BroadcastReceiver中使用了Asynctask

    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);
就这么简单。呸