Android活动变暗、失去焦点和冻结-无错误消息,在首次运行后工作
这就是问题所在: 活动开始,并且在onResume()中,在填充listview的后台线程中执行一些工作。这是在显示进度对话框的同时完成的,如下图所示: 这项工作完成了,并且进度对话框被告知关闭 对话框消失了-可以看到我的listview,但是活动失去了焦点-背景有点暗淡。这将迫使我按home键,并在重新打开之前强制关闭-如下例所示: 每次应用程序第一次运行时都会发生此问题。在应用程序锁定后运行总是成功的,并且问题不再明显!正如您在图片中所看到的,一切都变暗了,但是在强制关闭后,重新打开视图的响应与我预期的一样,一切正常。logcat中没有任何东西可以帮助我诊断问题,而且所有代码似乎都正常工作 请帮忙Android活动变暗、失去焦点和冻结-无错误消息,在首次运行后工作,android,android-activity,progressdialog,android-tabactivity,Android,Android Activity,Progressdialog,Android Tabactivity,这就是问题所在: 活动开始,并且在onResume()中,在填充listview的后台线程中执行一些工作。这是在显示进度对话框的同时完成的,如下图所示: 这项工作完成了,并且进度对话框被告知关闭 对话框消失了-可以看到我的listview,但是活动失去了焦点-背景有点暗淡。这将迫使我按home键,并在重新打开之前强制关闭-如下例所示: 每次应用程序第一次运行时都会发生此问题。在应用程序锁定后运行总是成功的,并且问题不再明显!正如您在图片中所看到的,一切都变暗了,但是在强制关闭后,重新打开视图
这里是重播列表活动部分的代码转储:-可能很难遵循-但在第一次运行时,它将执行dropbox登录,这很有效-然后执行findAllReplays()-这同样有效-最终以returnres runnable结束,导致对话框被取消-这同样有效-这就是问题似乎发生的地方…好的,所以我最终做了以下工作
我创建了一个AsyncTask,它在预执行时以同样的方式创建了对话框,在doinbackground结束时它关闭了对话框,因为我的onPostExecute从未执行过,但是在doinbackground结束时关闭对话框是可行的。这就是我正在使用的,它基本上解决了我的问题。要保持屏幕打开,可以在活动中设置一个标志
this.getWindow().
addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
它会一直打开屏幕,直到当前活动出现在前台。或者,如果您在后台做一些事情,并且希望在后台工作之前、期间或之后打开屏幕,则可以使用“唤醒锁定”
虽然在我回答之前您已经解决了问题,但希望它能帮助您明确概念,以保持屏幕打开。请提供一些代码。这似乎与您的后台工作有关,如果我的假设是,这只会触发一次,之后会发生焦点不集中的情况OK-我将提供一些活动的片段OK-添加了一个活动转储和一个简短的解释-OddJobs类只执行web服务调用-所有后台POJO工作。try
loadingList.cancel()
这会导致完全相同的行为。很高兴知道您解决了问题。但这可能不是通用情况。如果您的doinbackground任务完成,onPostExecute将始终执行