Android asynctask中onPause时ProgressDialog被卡住
我的Asynctask中有一个ProgressDialog,它从60秒计数到0,然后消失(onPostExecute) 问题是,在60秒内,屏幕通常会关闭-->ON PAUSE 当我打开屏幕时,我的对话框停留在X秒,不会消失Android asynctask中onPause时ProgressDialog被卡住,android,android-asynctask,progressdialog,Android,Android Asynctask,Progressdialog,我的Asynctask中有一个ProgressDialog,它从60秒计数到0,然后消失(onPostExecute) 问题是,在60秒内,屏幕通常会关闭-->ON PAUSE 当我打开屏幕时,我的对话框停留在X秒,不会消失 我必须杀了这个应用程序。有办法管理它吗?您可以在活动中覆盖onPause并在那里处理进度对话框。onPause是应用程序失去焦点时发生的事件。在下面的示例中,我使用onPause检查我们失去焦点的原因-如果是因为屏幕超时,我会采取一个行动,如果是因为其他原因(切换应用?),
我必须杀了这个应用程序。有办法管理它吗?您可以在活动中覆盖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();
}
@TargetApi(20)
@抑制警告(“弃用”)
@凌驾
公共无效暂停(){
PowerManager pm=(PowerManager)getSystemService(Context.POWER\u服务);
布尔screenOn=Build.VERSION.SDK_INT<20?pm.isScreenOn():pm.isInteractive();
如果(!isChangingConfigurations()&&screenOn){
//TODO对非屏幕睡眠事件采取操作
}否则{
//TODO对屏幕睡眠事件采取操作
}
super.onPause();
}