Согласно вашему коду, вы создаете новую тему каждый раз, когда вы касаетесь своего экрана, а также вы делаете fingerdown
ложь в MotionEvent.ACTION_UP
, но куда вы ее превращаете?
Я предлагаю вамсделать x, y , width, height
переменной экземпляра и управлять выполнением кода внутри потока, указав fingerdown
true или false в коде события.
Попробуйте использовать приведенный ниже код
boolean var = false; //instance variable to check if thread has started running for first time
int x, y, width, height; // variables as instance variables
boolean fingerdown;
Thread myThread = new Thread() {
@Override
public void run() {
while(fingerdown==true);
{
// class object = new class() in the activity area
object.function(this.x ,this.y , this.height, this.width);
}
}
};
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
this.x = event.getX();
this.y = event.getY();
this.width = widthf;
this.height = heightf;
fingerdown = true;
if(!var){
var = true;
myThread.start();
}
}
if (event.getAction() == MotionEvent.ACTION_UP)
{
fingerdown = false
}
Вместокаждый раз, создавая новый поток в событии касания, вы делаете логическое значение true и false и управляете выполнением кода.