2016-03-24 15 views
2

Ich habe eine Android-App, wenn ein Benutzer mehrere Male schnell auf eine Schaltfläche klickt, wird die gleiche Aktivität mehrmals initialisiert.So verhindern Sie, dass eine Aktivität mehrmals initialisiert wird

Um dies zu verhindern, habe ich android:launchMode="singleInstance" in Manifest-Datei hinzugefügt. Aber jetzt, wenn sich eine Aktivität selbst aufruft, funktioniert es nicht.

Ich habe auch versucht

Intent myintent = getIntent(); 
myintent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

Aber diese entweder nicht funktioniert hat.

Wie kann ich verhindern, dass mehrere Aktivitäten ausgeführt werden, wenn der Benutzer mehrmals schnell auf eine Schaltfläche klickt, und wie kann ich dieselbe Aktivität korrekt aufrufen? Vielen Dank.

+0

versuchen launchMode = "singleTop". Edit: Was meinst du mit "und wie kann ich die gleiche Aktivität sich selbst nennen lassen"? Soll diese Aktivität neu erstellt werden, wenn sie von sich selbst aufgerufen wird? – Wukash

+0

@Wukash Es hat nicht funktioniert, noch kann sich eine Aktivität nicht selbst nennen. – jason

+0

@Wukash Wenn ich eine Aktivität aktiviere und eine Taste drücke und dieselbe Aktivität anrufe, funktioniert sie nicht. – jason

Antwort

1

Ja, das passiert, wenn Sie "Trigger glücklich" sind. Sie können auch in vielen Situationen Multi-Touch verwenden, um eine Reihe von Optionen gleichzeitig zu aktivieren. Wenn Sie dies wirklich lösen müssen, können Sie sich Elemente wie J Whitfield (element.setEnabled(false) oder element.setClickable(false)) oder abfangende Elemente onTouch ansehen.

1

Sie könnten versuchen, die Schaltfläche zu deaktivieren, nachdem der erste Klick erkannt wurde.

Button button = theView.findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(v.isEnabled()){ 
        v.setEnabled(false); 
       } 
       //Call your new activity here 
       ...activity stuff... 
      } 
     }); 
+0

Können Sie zeigen, dass mit einem Beispiel bitte? – jason

+0

Ich habe meine Frage aktualisiert, um zu zeigen, wie dies implementiert werden kann –

+0

Mit dieser Konfiguration kann der Benutzer, wenn er zur vorherigen Aktivität zurückkehrt, diese Schaltfläche nicht verwenden ... – jason

Verwandte Themen