在asynctask中的onPause时,ProgressDialog被卡住了

时间:2015-01-22 22:11:16

标签: android android-asynctask progressdialog

我的Asynctask中有一个ProgressDialog,从60秒到0,然后消失(onPostExecute)

问题在于,在60秒内,屏幕调低是常见的 - >的onPause

当我打开屏幕时,我的对话框被卡住了X秒,并且不会消失。

我必须杀死app。有办法管理吗???

1 个答案:

答案 0 :(得分:0)

您可以在活动中覆盖onPause并在那里处理进度对话框。 onPause是应用程序失去焦点时发生的事件。在下面的示例中,我使用onPause来检查我们失去焦点的原因 - 如果因为屏幕超时,我会采取一个操作,如果出于其他原因(切换应用程序?我拿另一个。

@TargetApi(20)
    @SuppressWarnings("deprecation")
    @Override
    public void onPause(){
        PowerManager pm =(PowerManager) getSystemService(Context.POWER_SERVICE);
        Boolean screenOn = Build.VERSION.SDK_INT < 20 ? pm.isScreenOn() : pm.isInteractive();
        if(!isChangingConfigurations() && screenOn){
            //TODO take action for non screen sleep event
        } else {
            //TODO take action for screen sleep event
        }
        super.onPause();
    }