Frage

Ich möchte in Android programmatisch zu dem Home-Bildschirm gehen, wenn der Benutzer klickt auf die Schaltfläche. Wie kann dies geschehen?

War es hilfreich?

Lösung

Sie können dies durch eine Intent .

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

Diese Absicht wird die Launcher-Anwendung starten, die der Benutzer definiert hat. Seien Sie vorsichtig mit diesem, weil diese aussehen wird Ihre Anwendung abgestürzt, wenn der Benutzer nicht erwartet hat.

Wenn Sie wollen, dass diese eine Exit-Taste aus Ihrer Anwendung erstellen Sie in diesem Artikel auf exit Buttons in Android

Andere Tipps

Eine Linie Lösung

moveTaskToBack(true); //activity.moveTaskToBack(true);

wird es sich verhalten, als Start-Taste gedrückt wird

Janusz Antwort ist groß.

Das einzige, was ich hinzufügen möchte, die ein wenig zu lang für einen Kommentar, ist, dass Sie auf dem Home-Bildschirm gehen kann einen Verweis auf die aktuelle Aktivität ohne.

Janusz Code muss von einer Aktivität oder Fragmente aufgrund startActivity() genannt werden,

Um dies zu umgehen, können Sie speichern einen statischen Bezug auf Ihre Anwendungen Kontext in Ihrer Anwendung Datei:

public class YourApplication extends Application
{

    private static Context mAppContext;

    public void onCreate()
    {
        super.onCreate();
        ...
        YourApplication.mAppContext = getApplicationContext();
    }

    public static Context getContext()
    {
        return mAppContext;
    }

}

Jetzt können Sie den Benutzer auf das Gerät Home-Bildschirm aus jeder Klasse in Ihrer Anwendung senden, nicht nur Aktivitäten, Fragmente oder andere Klassen mit einem Verweis auf die aktuelle Aktivität (Sie können entscheiden, ob dies eine gute oder schlechte Sache) :

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);

Android Entwickler Website

Hier sind einige Beispiele für andere Operationen, die Sie als Absichten mit diesen zusätzlichen Parametern angeben:

* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

Ich weiß, das ist ein bisschen spät, aber ich lief auch in das gleiche Problem und hier ist, wie ich es gelöst. Gehen wir zurück zu Ihren MainActivity müssen Flags aus dem spannendsten Activity

hinzufügen
    final Intent mainActivity = new Intent(this, MainActivity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

Wenn Sie nun die Zurück-Taste gedrückt MainActivity die aktiven sein, es zu Home-Bildschirm gehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top