Quiero detener el temporizador si se ejecuta la acción de tocar la pantalla, porque ahora, cuando toco la pantalla, el temporizador sigue funcionando y no hay ninguna función que lo detenga. me puedes ayudar


public class SplashActivity extends Activity {
RelativeLayout splash;
    Handler handler;
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        startActivity(new Intent(getApplicationContext(),LoginActivity.class));
        finish();
        return super.dispatchTouchEvent(ev);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splashfile);

                    handler=new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            startActivity(new Intent(getApplicationContext(),LoginActivity.class));
                            finish();
                        }
                    },10000);

       /*splash=findViewById(R.id.splash);
              splash.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                startActivity(new Intent(getApplicationContext(),LoginActivity.class));
                finish();
                return true;
            }
        });*/
            }
            
}
0
Antoine 24 feb. 2021 a las 13:49

1 respuesta

La mejor respuesta

Puede eliminar todas las devoluciones de llamada en Handler usando removeCallbacksAndMessages(null)

splash=findViewById(R.id.splash);
splash.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        handler.removeCallbacksAndMessages(null); // this will remove your callback
        startActivity(new Intent(getApplicationContext(),LoginActivity.class));
        finish();
        return true;
    }
});
0
rajan.kali 24 feb. 2021 a las 11:17