2013-03-08 7 views
5

Ich habe eine Aktivität, die bis zu dem Zeitpunkt, an dem der Benutzer auf eine Schaltfläche klickt, piept. Wenn Sie auf die Schaltfläche klicken, wird eine Nachricht angezeigt. Nach dem Anzeigen der Nachricht möchte ich nicht, dass der Benutzer zum Beenden auf die Zurück-Schaltfläche drückt, sondern möchte, dass meine Aktivität auf den Startbildschirm zurückkehrt.Zurück zum Startbildschirm, nachdem die Aktivität beendet wurde.

Funktioniert die finish() Methode dies? Wenn ja, wie und wo soll ich es umsetzen?

Jede Art von Hilfe wird geschätzt. Dank

Antwort

7
Intent i= new Intent("package.homescreenactivity");//homescreen of your app. 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY); 
    startActivity(i); 
    finish(); 

zu Hause Bildschirm Gehen Sie zurück nach Tätigkeit Stapel zu löschen.

Um das ganze Konzept zu verstehen, schlage ich vor, dass Sie einen Blick auf diese Seite werfen. http://developer.android.com/guide/components/tasks-and-back-stack.html. Die Website spricht darüber, wie Aktivität Back Stack funktioniert.

Update: (15. August 2014)

Clearing Backstack kann nicht eine gute Idee sein. Bitte werfen Sie einen Blick auf die Designrichtlinien für effektive Navigation.

Zurück-Schaltfläche soll Sie zurück zur vorherigen Aktivität bringen.

prüfen

http://developer.android.com/design/patterns/navigation.html

+1

Sorry, wenn ich nicht klar war. Ich meinte den Standard-Startbildschirm des Android-Handys. Geht das zurück? – newbee

+0

Überprüfen Sie den bearbeiteten Post. – Raghunandan

+0

hab es geschafft! Danke :) – newbee

1

Bewerben finish() Methode in allen Aktivitäten. Nach dem Ende der Aktivität kehrt es zum Startbildschirm zurück.

1

Fall 1: Für Knopf klicken

public void onClick(View v) { 
    // Show message here 
    moveTaskToBack(true); 
    } 

Fall 2: Wenn Sie Benutzer fragen, wollen nach Hause gehen

public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 

      AlertDialog.Builder alertbox = new AlertDialog.Builder(this); 
      alertbox.setTitle(res.getString("Title")); 
      alertbox.setMessage(res.getString("Exit")); 
      alertbox.setIcon(R.drawable.logo); 
      alertbox.setPositiveButton(res.getString(R.string.Yes), 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface arg0, int arg1) { 
          exit(); 
         } 
        }); 

      alertbox.setNeutralButton(res.getString(R.string.No), 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface arg0, int arg1) { 
         } 
        }); 

      alertbox.show(); 
      return true; 
     } 

     return super.onKeyDown(keyCode, event); 
    } 

    private void exit() { 
     moveTaskToBack(true); 

    } 
1

Sie zeigen die Meldung als alertdialog Unter der Annahme, rufen finish() auf der Knopfdruck der .

Wenn Sie Toast() verwenden, rufen Sie finish() auf Tastendruck auf, nachdem Toast() angezeigt wird.

0

Sie können finish() Methode bei Button onClick() anwenden und nach startActivity() Anruf können Sie Finish-Methode anwenden, wie unten gezeigt.

startActivity(intent obj); 
finish();