我正在使用特定的中间件(不重要)在Android中开发一个电视远程模拟器应用程序.
在音量按钮(音量+和音量 - )的情况下,我要做的是在按下按钮时重复发送"音量调高"信号.
这就是我最后尝试的(其中一个按钮的代码,另一个必须相同,除了名称):
声明了一个布尔变量
boolean pressedUp = false;
Run Code Online (Sandbox Code Playgroud)使用以下AsyncTask声明了一个内部类:
class SendVolumeUpTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
while(pressedUp) {
SendVolumeUpSignal();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
}
将侦听器添加到按钮:
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;
}
});
Run Code Online (Sandbox Code Playgroud)我也尝试使用简单的线程,如在Increment-Decrement计数器中按下按钮但不起作用.该应用程序可以很好地用于其余按钮(通道等),但完全忽略了音量变化.
我有以下矩阵:
[
[
16.0,
23251143833701.0,
3.3788480598465756e+25,
4.9101301394821435e+37
],
[
23251143833701.0,
3.3788480598465756e+25,
4.9101301394821435e+37,
7.135383882205603e+49
],
[
3.3788480598465756e+25,
4.9101301394821435e+37,
7.135383882205603e+ 49,
1.0369114809614645e+62
],
[
4.9101301394821435e+37,
7.135383882205603e+49,
1.0369114809614645e+62,
1.5068361241656833e+74
]
]
Run Code Online (Sandbox Code Playgroud)
这个矩阵的决定因素是-1.4536774485912138e+135,如果我打电话regular?,它会返回true.但是,当我调用该方法时inverse,Ruby会引发以下异常:
matrix.rb:1079:in `block in inverse_from': Not Regular Matrix (ExceptionForMatrix::ErrNotRegular)
from matrix.rb:1069:in `upto'
from matrix.rb:1069:in `inverse_from'
from matrix.rb:1061:in `inverse'
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?