2014-12-23 3 views
-1

내 안드로이드 앱에서 클릭 할 때 다른 활동이 열리는 버튼이 있습니다. 문제는 사용자가 해당 버튼을 여러 번 빠르게 두드 리면 새로운 활동이 많이 열리게된다는 것입니다. 한 번에 하나의 활동 만 열 수 있도록 강제로 수행 할 수 있습니까?android에서 활동 인스턴스를 하나만 표시하는 방법은 무엇입니까?

나는, 버튼을 비활성화하거나 로딩 화면을 바르지

답변

1

, 당신은 FLAG_ACTIVITY_SINGLE_TOP와 함께 활동을 시작할 수 있습니다. 이미 인스턴스가 표시되면 새 인스턴스가 만들어지지 않습니다. 원유 예 :

btn.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) { 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       Intent intent = new Intent(MainActivity.this, CalledActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
       startActivity(intent); 
      } 
     }, 1000); 
    } 
}); 

신속한 누름 버튼하면 텐트 플래그없이 CalledActivity의 인스턴스를 생성한다.

+0

1 초 후에 실행해야하는 이유는 무엇입니까? 필요한 타이밍 문제가 있습니까? – omega

+0

@omega 아니, 전혀! 그것은 단지 당신이 묘사하는 "버튼을 여러 번 누르십시오"문제를 쉽게 재현 할 수있는 예입니다. :) – matiash

관련 문제