2010-05-02 15 views
20

Ich weiß, dass das Aufrufen von finish() in der Aktivität dasselbe Ergebnis erzeugt, als ob der Benutzer auf die Schaltfläche Zurück geklickt hätte; Gibt es eine ähnliche Sache für die Home-Taste? (möchte den Startbildschirm nach einer bestimmten Aktion automatisch anzeigen).Android - Startseite simulieren klicken

EDIT: Auch würde ich das gleiche für Menü & Suche Tasten zu schätzen wissen.

Danke!

Antwort

56

Sie können einfach eine Intent für diese Verwendung:

Intent i = new Intent(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
startActivity(i); 
+10

ich dieses eine lesen s "Es gibt eine Absicht dafür" und kicherte ein wenig :) – alexanderblom

+2

Dies scheint nicht für API 4 (1.6) zu funktionieren? Es gibt keine Intent.ACTION_HOME ... – kape123

+1

Es gibt keine "Intent.ACTION_HOME" - es existiert nicht. Nach dem http://developer.android.com/reference/android/content/Intent.html sollte es sein: "ACTION_MAIN mit Kategorie CATEGORY_HOME - Starten Sie den Startbildschirm – mishkin

7

HOME:

 
Intent showOptions = new Intent(Intent.ACTION_MAIN); 
showOptions.addCategory(Intent.CATEGORY_HOME); 
startActivity(showOptions); 

MENU:

 
openOptionsMenu(); 
// this won't work from onCreate 
// if anyone has idea how it would work 
// please post it as response 
3
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME)); 
0

Die nächste Lösung nach Hause Klick zu simulieren, die ich gefunden wurde:

On-Click-System-Log Home-Taste:

I/Activity: START u0 {act = android.intent.action.MAIN cat = [android.intent.category.HOME] flg = 0x10200000 cmp = com.belauncher/.ui.activities.MainActivity (hat Extras)} von uid 1000 auf dem Display 0

simulieren Absicht:

Intent i = new Intent(Intent.ACTION_MAIN); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      i.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
      i.addCategory(Intent.CATEGORY_HOME); 
      startActivity(i); 
Verwandte Themen