私はリモートデバイスへのネットワークポート経由でASCII制御を実行するアクティビティを持っています。 インターフェイスを1回押すごとに、AsyncTaskがトリガされ、通信が処理され、(ついに)素晴らしい結果が得られます。 しかし、ユーザーがクラップのチンパンジーのようなボタンマッシュを開始した場合、同じソケット上でコールが多すぎるとシステムがクラッシュするため、少しのタイマー機能を試して反応を遅らせます。ユーザーがAndroidでボタンマッシュを行う速度を遅くする
私は誰かがこれを行うためのより良い方法を思い付いたのだろうか?
のonCreate内の最初のオフ、:
btn_pwrtoggle = (Button)findViewById(R.id.pwr_btn);
btn_pwrtoggle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!buttonMasher){
if(powerstat.equals("OFF")){
String[] commandToSend = {"POWER","ON"}
}else{
String[] commandToSend = {"POWER","OFF"};
}
deviceControl(commandToSend);
}
startButtonMashTimer();
}else{
Log.w("button masher","slow down there, monkey.");
}
}
});
次に、実際の活動に:
Timer buttonTimer;
TimerTask buttonMonitorThread;
int chimpCrackCounter;
protected void startButtonMashTimer() {
chimpCrackCounter = 0;
buttonTimer = new Timer();
buttonMonitorThread = new TimerTask(){
@Override
public void run(){
buttonMasher = true;
if(chimpCrackCounter == 1){
buttonMasher = false;
buttonTimer.cancel();
}
chimpCrackCounter++;
}
};
buttonTimer.schedule(buttonMonitorThread, 0, 500);
}
それは、うまく動作しているようだ(と誰かが同じ難易度を持つ助けるかもしれません)しかし、私は提案に開放されています。
私はその吸盤を投票するだろうが、私はrepのポイントがありません。 ありがとう!それを釘付けにする。 – Octoth0rpe