2010-05-02 2 views
20

Я знаю, что функция call finish() в действии даст такой же результат, как если бы пользователь нажал кнопку «Назад»; есть ли аналогичная вещь для кнопки «Домой»? (хотел бы автоматически отображать начальный экран после определенного действия).Android - Simulate Home Нажмите

EDIT: также, я был бы очень признателен за меню & Кнопки поиска.

Спасибо!

ответ

56

Вы можете просто использовать Намерение для этого:

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

Я прочитал это s «Есть намерение для этого», и посмеялся немного :) – alexanderblom

+2

Это, похоже, не работает для API 4 (1.6)? Нет Intent.ACTION_HOME ... – kape123

+1

нет «Intent.ACTION_HOME» - его не существует. Согласно http://developer.android.com/reference/android/content/Intent.html, это должно быть: «ACTION_MAIN с категорией CATEGORY_HOME - Запуск главного экрана – mishkin

7

HOME:

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

МЕНЮ:

 
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

Ближайшее решение для имитации домой щелчок, что я найдено:

На кнопки домой системный журнал нажмите:

I/ActivityManager: START u0 {акт = android.intent.action.MAIN кошачьих = [android.intent.category.HOME] FLG = 0x10200000 CMP = com.belauncher/.ui.activities.MainActivity (имеет статистов)} из Uid 1000 на дисплее 0

Симуляция намерения:

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); 
Смежные вопросы