У меня есть некоторые проблемы с OnTouchListener
. Я хочу, чтобы каждый раз, когда пользователь касался экрана, чтобы перейти к определенной деятельности. Проблема в том, что когда я касаюсь экрана, он делает что-то вроде обновления для текущей активности, и он запускается (текущая активность содержит ViewFlipper
, и когда экран коснется, viewflipper начинает листать с самого начала). Только при втором касании приложение переходит к следующему действию. Может ли кто-нибудь помочь мне решить эту проблему?OnTouchListener не работает нормально
Моя текущая деятельность распространяется OnTouchListener
, я поставил myviewflipper.setonTouchListener(this)
и мой onTouch()
метод:
@Override
public boolean onTouch(View v, MotionEvent event) {
finish=true;
Intent intent = new Intent(getBaseContext(), FinishApplication.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
}
После того как я коснуться экрана называется onPause()
и onResume()
. В методе onResume()
я запускаю некоторые таймеры для некоторых обновлений (когда сделаны обновления, начинается слайд-шоу), и я думаю, что именно поэтому моя активность обновляется. Я установил переменную boolean finish
в true
только после того, как экран коснется и запустит обновления, только если finish
- false
, но не работает. Моя переменная не установлена в true. Любая другая идея, как я могу это решить?
@Override
protected void onResume() {
super.onResume();
System.out.println("OnResume ViewPlaylist!!");
t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Imalive();
}
});
}
}, 300, 30000);
if (finish != true) {
System.out.println("Start update!");
update = new Timer();
update.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
updateItems();
}
});
}
}, 30000, 20000);
} else {
finish = true;
Intent intent = new Intent(SlideShow.this, FinishApplication.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
}
у вас есть код с отладчиком? – WarrenFaith