0

我有这个 onKeyDown 方法的代码:

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
    { 
           int index = seekbar.getProgress(); 
           seekbar.setProgress(index + 1); 
           return true; 
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
     {
           int index = seekbar.getProgress(); 
           seekbar.setProgress(index - 1); 
           return true; 
    }
     return super.onKeyDown(keyCode, event); 
    }

问题是我想在AsyncTask, on中执行此操作,postExecute并且我认为在 runOnUiThread 中,但我不确定。

关于这样做的任何想法或建议?

谢谢!

编辑:

我在对话框中有一个 seekBar,它是在 AsynTask 的 postExecute 中创建并显示的,我需要像这样更新 seekbar 拇指位置:当用户按下设备音量键时 seekbar thumb position change

4

3 回答 3

0
 class ABC {

        Context mContext;

        ABC(Context c)
        {
        mContext=c; 
        }


        public void launchIntent() {
           CurrentClass.this.runOnUiThread(new Runnable() {
              @Override
              public void run() {


                call your method stub here
                } 
            }
           });
        }
     }
于 2012-07-12T11:22:24.853 回答
0

取一个布尔变量

boolean myboolean=false;

然后在你的postExecute()

并将您的onKeyDown()方法编辑为

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(myboolean)
    {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
        { 
            int index = seekbar.getProgress(); 
            seekbar.setProgress(index + 1); 
            return true; 
        } 
        else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
        {
            int index = seekbar.getProgress(); 
            seekbar.setProgress(index - 1); 
            return true; 
        }
    }
    return super.onKeyDown(keyCode, event); 
}
于 2012-07-12T11:18:45.347 回答
0

postExecute不需要runOnUiThread你可以更新 UI 元素postExecute

有关更多信息,请阅读此内容。

于 2012-07-12T10:41:15.053 回答