>

버튼을 누르면 활동이 열립니다. 그러나 사용자가이 버튼을 두 번 빠르게 누르면 내 활동이 두 번 시작됩니다. launchMode: singleTop 를 추가하지 않도록  매니페스트에서이 플래그를 시작 의도에 추가했습니다.

그러나 여전히 동작은 동일합니다. 핸들러 스레드를 사용하거나 비활성화하여 더블 클릭을 방지하려고하지 않습니다. 왜 singleTop 를 알고 싶습니다  이 경우 작동하지 않습니다.

매니페스트 코드

<activity
    android:name=".MyActivity"
    android:screenOrientation="portrait"
    android:theme="@style/MyTheme"
    android:launchMode="singleTop"
    android:windowSoftInputMode="adjustResize" />

의도

val intent = Intent(context, MyActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
activity?.startActivityFromFragment(this, intent, REQUEST_CODE)

업데이트

더 많은 조사에서 나는 startActivityForResult 를 발견  깃발을 존중하지 않습니다. startActivityFromFragment   startActivityForResult 에 전화 여기에서 이것을 재현하는 샘플

을 작성했습니다.
  • 답변 # 1

    signeTop을 사용할 필요는 없습니다. 다음 번에 바로 클릭되지 않도록 버튼에 지연 방법을 사용할 수 있습니다. rx android를 사용하는 경우 아래 방법을 사용할 수 있습니다. 또는 간단한 논리를 만들 수도 있습니다.

    RxView.clicks(view).throttleFirst(500, TimeUnit.MILLISECONDS).subscribe(empty -> {
                // action on click
            });
    
    

  • 이전 javascript - rxjs는 마지막으로 많은 삭제 요청 및 업데이트보기를 게시합니다
  • 다음 javascript - iPhone 및 Android에서 HTML 태그의 카메라 기능 사용자 정의