Может быть, что-то вроде этого:
long mLastClickTime;
findViewById(R.id.button).setOnTouchListener(new OnTouchListener() {
@Override
public void onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN)
mLastClickTime = SystemClock.elapsedRealtime();
else if (event.getAction() == MotionEvent.ACTION_UP) {
long duration = SystemClock.elapsedRealtime() - mLastClickTime;
// using threshold of 1000 ms
if (duration > 1000) {
// do your magic here
}
}
}
});