我正在使用特定中间件(不重要)在 Android 中开发 TV-Remote Simulator 应用程序。
对于音量按钮(音量+和音量-),我要做的是在按下按钮时重复发送“音量调高”信号。
这就是我最后尝试的(其中一个按钮的代码,除了名称之外,另一个必须相同):
声明一个布尔变量
boolean pressedUp = false;
使用以下 AsyncTask 声明了一个内部类:
class SendVolumeUpTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { while(pressedUp) { SendVolumeUpSignal(); } return null; }
}
将监听器添加到按钮:
final Button buttonVolumeUp = (Button) findViewById(R.id.volup); buttonVolumeUp.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if(pressedUp == false){ pressedUp = true; new SendVolumeUpTask().execute(); } case MotionEvent.ACTION_UP: pressedUp = false; } return true; } });
我还尝试使用简单的线程,例如按下按钮时的增量 - 减量计数器,但都没有工作。该应用程序适用于其余按钮(通道等),但完全忽略了音量变化。