Hatte bisher i.wie immer nur eine Loop was natürlich auch nicht Sinn und Zweck der Sache ist.
Warum ist das nicht Sinn und Zweck der Sache?
Natürlich könntest Du die Aktion in einen Service auslagern.
Dann nimmst Du einen onTouch Listener und feuerst entsprechend Deinen Service.
Java
// this goes somewhere in your class:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
calculationService.start();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
calculationService.stop();
}
// Eventuell noch Dinge wie CANCEL oder UP_OUTSIDE berücksichtigen, sollte es diese Actions geben.
}
};
Alles anzeigen
Ach ja, sollte Dir das mit dem Service zu kompliziert werden, kannst Du mit diesem Konstrukt auch einen flag setzen, der steuert ob Deine Aktionen in einer WHILE-Schleife durchgeführt werden.