Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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-onOptions ItemSelected UI冻结,直到完成_Android_User Interface_Actionbarsherlock - Fatal编程技术网

Android-onOptions ItemSelected UI冻结,直到完成

Android-onOptions ItemSelected UI冻结,直到完成,android,user-interface,actionbarsherlock,Android,User Interface,Actionbarsherlock,这个问题描述起来很简单,但我没有找到答案 我正在使用ActionBarSherlock(如果相关的话),我有一个菜单选项来刷新片段的内容。一切都很好 我遇到的问题是,当我按下刷新按钮时,它将冻结UI,直到进程完成,我想显示对话框和其他内容 下面是一段代码: “公共类MainActivity扩展SherlockFragmentActivity”方法: 在这种情况下,UI冻结10秒(刷新按钮保持为“已选择”) 我不认为这与我的应用程序代码有关,而是与ABS或安卓系统有关 事实是:我在这个方法中使用线

这个问题描述起来很简单,但我没有找到答案

我正在使用ActionBarSherlock(如果相关的话),我有一个菜单选项来刷新片段的内容。一切都很好

我遇到的问题是,当我按下刷新按钮时,它将冻结UI,直到进程完成,我想显示对话框和其他内容

下面是一段代码:

“公共类MainActivity扩展SherlockFragmentActivity”方法:

在这种情况下,UI冻结10秒(刷新按钮保持为“已选择”)

我不认为这与我的应用程序代码有关,而是与ABS或安卓系统有关

事实是:我在这个方法中使用线程和异步任务,所以这不是问题所在


关于如何使UI可更新(或像线程一样运行此方法)的任何想法?您正在调用
Thread.sleep(10000)UI
线程上执行code>,使其冻结。你不应该这样做

事实是:我在这个方法中使用线程和异步任务,所以这不是问题所在

我不知道你所说的“这不是问题”是什么意思,但你可以将
线程。sleep(…)
移动到你的
线程之一
异步任务

关于如何使UI可更新(或者像线程一样运行此方法)有何想法


您说在这个方法中使用的是
AsyncTask
。在代码运行后(或者除了
doInBackground()

之外,在
onPostExecute()
异步任务中更新
UI
)中的
确定…我使用了一个线程(里面有一个异步任务),认为不会麻烦。我已将其更改为异步任务,现在可以工作了。谢谢!
AsyncTask
是一个后台
线程
,因此无需这样做。很高兴它能为您工作。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case R.id.action_refresh:
        Thread.sleep(10000); // removed try/catch code for practical purposes.
      break;
    }
    return true;
}