2016-04-26 18 views
0

Hallo ich habe ein kleines Problem, das ein bisschen wie eine Schleife My imageAndroid endlose Aktivität Schleife

Ich habe Sie können jeder mit einem Knopf sehen zwei Aktivitäten, die in dem Bild in meiner Anwendung wirkt. Wenn die Taste 1 gedrückt wird, gelangen Sie zur zweiten Aktivität und wenn Sie die Taste 2 drücken, gelangen Sie zur ersten Aktivität, die perfekt ist. Das Problem ist, dass wenn ich kontinuierlich diese Tasten drücken sollte, um zwischen den beiden zu navigieren, eine große Auswahl von Aktivitäten wie eine Linie aufbauen würde und wenn Sie die Zurück-Taste drücken, würden Sie automatisch durch alle offenen Aktivitäten navigieren.

  1. Meine Frage ist, implementiere ich eine onDestroy-Methode und wenn ja, wie würde es gehen?

  2. Kann ich die Zurück-Taste außer Kraft setzen, um mich direkt zu Aktivität eins und nicht weiter zu bringen?

+0

android ': Nohistory = "true"' --- Im Manifest. Vorsicht vor Implikationen, lesen Sie in den Dokumenten nach. – Skynet

+0

Nun in Ihrer zweiten Aktivität verwenden Sie nicht Intent nur finish(); Ihre Aktivität wird Ihre zweite Aktivität schließen und die erste Aktivität wieder aufnehmen –

+0

Rakshit könnten Sie ein Beispiel geben? das ist, was ich gerade benutze. startActivity (neue Absicht (getApplicationContext(), ContactUsMainActivity.class)); – james

Antwort

0

Umsetzung der Absichten wie folgt:

Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

, wenn neue Aktivität geöffnet vorherige Tätigkeit geschlossen werden.

0

Lassen Sie sagen, Sie auf die zweite Aufgabe werden mit folgenden

button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent to_second=new Intent(FirstActivity.this,SecondActivity.class); 
      startActivity(to_second); 
     } 
    }); 

Jetzt in Ihrem zweiten Aktivität haben folgende

button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      finish(); 
      } 
     }); 

button2 Ihre zweite Aktivität beenden und Lebensläufe Ihre wieder erste Aktivität und Sie können Klicken Sie erneut auf den Button1, um Zweite Aktivität zu öffnen, und der Kreis wird fortgesetzt.

1

Meine Frage ist, implementiere ich eine onDestroy-Methode und wenn ja, wie würde es gehen?

Sie können Finish() aufrufen, wenn Sie zur nächsten Aktivität

Intent intent = new Intent(Activity1.this, Activity2.class); 
startActivity(intent); 
finish(); 

Intent intent = new Intent(Activity2.this, Activity1.class); 
startActivity(intent); 
finish(); 

Kann ich die Zurück-Taste mich außer Kraft setzen passieren direkt ein und nicht weiter zurück zu Aktivität nehmen?

In Activity2 Sie onBackPressed in onClick wie

button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBackPressed(); 
      } 
     }); 
} 
@Override 
public void onBackPressed(){ 
    // do what ever you want before you back to previous activity 
    super.onBackPressed(); 
    // call super.onBackPressed(); or finish(); 
} 
0

Nun nennen kann, können Sie beide Aktivitäten launchMode="singleInstance"AndroidManifest in Ihrem machen. Sie können zwar etwas über onNewIntent() Anrufe senden.

Rufen Sie nicht super.onBackPressed(), weil es finish() aufgerufen wird, starten Sie einfach eine andere Aktivität.

können Sie diese Lösung verwenden, wenn Sie Aktivitäten nicht neu erstellen müssen, sonst verwenden CLEAR_TOP & etc