Ниже приведен метод двойной проверки в Utils.kt
var mLastClickTime: Long = 0
fun isDoubleClicked(): Boolean {
if(SystemClock.elapsedRealtime() - mLastClickTime < 1000) {
Log.d(TAG, "double clicked")
return true
}
mLastClickTime = SystemClock.elapsedRealtime()
return false
}
, а ниже - метод isDoubleClicked()
.
memoAdapter.itemClick = object : MemoAdapter.OnItemClickListener {
override fun onItemClick(memo: Memo, view: View)
if (isDoubleClicked()) return
val intent = Intent(this@MainActivity, DetailMemoActivity::class.java)
intent.putExtra(EXTRA_ID, memo.id)
intent.putExtra(EXTRA_TITLE, memo.title)
intent.putExtra(EXTRA_CONTENT, memo.content)
intent.putExtra(EXTRA_PHOTO, memo.photos)
intent.putExtra(EXTRA_TIMESTAMP, memo.timestamp)
startActivityForResult(intent, EDIT_MEMO_REQUEST)
}
}
, когда я нажимаю дважды не так быстро, но менее чем через 1000 мс, сообщение журнала «дважды щелкнуло» хорошо показывалось.
НО
при двойном нажатии очень быстро , мое приложение скрыть в Android Фон, как будто я нажал кнопку «Домой».
И когда я снова открываю приложение, метод startActivityForResult(~~,~~)
, кажется, хорошо вызван. Я имею в виду, DetailMemoActivity
запущено.
Как я могу предотвратить закрытие приложения, когда я дважды щелкаю быстро?