Я разрабатываю медиаплеер с нестандартной раскладкой. Я хочу, чтобы интерфейс исчез после 16 секунд бездействия. Он должен появиться снова, если пользователь касается экрана. Фрагмент кода приведен ниже:
public void showhideControllers(int n) {
if (n == 1) {
/* make layout invisible */
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
volumeBar.setVisibility(View.INVISIBLE);
audioControllView.setVisibility(View.INVISIBLE);
topBar.setVisibility(View.INVISIBLE);
}
}, 16000);
} else {
/* make layout visible */
volumeBar.setVisibility(View.VISIBLE);
topBar.setVisibility(View.VISIBLE);
audioControllView.setVisibility(View.VISIBLE);
showhideControllers(1);
}
}
@Override
public void onUserInteraction() {
super.onUserInteraction();
showhideControllers(2);
}
Внутри onCreate () я запускаю таймер, вызывая showhideControllers (1) ;.
Теперь, когда я нажимаю на экран, раскладка появляется снова и таймер сбрасывается. Но если я случайно нажимаю на экран, таймер не сбрасывается после каждого щелчка, а раскладка исчезает через 16 секунд.
Можете ли вы сказать мне, что я делаю не так?