2011-01-21 13 views

risposta

1

Non sono sicuro di aver capito completamente cosa stai cercando di fare! Ma se intendi che vuoi che l'utente sia in grado di accedere ad un'altra applicazione facendo clic all'interno della tua applicazione, dovresti controllare "intent". Eseguire il API codice di esempio DEMO in Eclipse, ed eseguire App -> Intenti

48

Ecco il codice per l'avvio HomeActivity

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

Thx ma voglio aprire la schermata che mostra le applicazioni con le loro icone per gli utenti. Intendevo questo mentre dicevo "schermata principale". – sjor

+1

Intendi il programma di avvio? –

+0

Sì, questo è ciò che sta parlando di – Pachonk

5

Non c'è un "schermo che mostra le applicazioni con le loro icone per gli utenti" in Android.

Quello che stai pensando è una funzionalità di alcune schermate iniziali. Non è disponibile lo standard Intent per attivare questa visualizzazione e non è necessario che le schermate iniziali dispongano di tale funzionalità.

Siete invitati a scriverne uno. Here is a sample project che visualizza le attività fatturabili in un ListView.

+0

Ciao signore, ho bisogno di te aiuto, ho provato a creare un armadietto di schermatura di esempio funziona, il mio problema è dopo il blocco dello schermo, il navigatore passa alla home del dispositivo, quando clicco su tasto home che ha lanciato il mio launcher ma che deve mostrare la casa predefinita dopo lo sblocco, come posso farlo. – Aerrow

9

I commenti che hai fatto su alcune delle risposte suggeriscono che in realtà vuoi avviare il Launcher (potresti aggiornare il titolo se questo è il caso). Per fare ciò, utilizzare lo stesso approccio proposto da Anand per il lancio dell'attività domestica.

Intent startMain = new Intent(Intent.ACTION_MAIN); 
startMain.addCategory(Intent.CATEGORY_LAUNCHER); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
+1

Ben fatto !!!! – Pachonk

+1

Strano che apre la mia app per gli SMS. – rekire

+2

Questo aprirà solo un'app (o mostrerà un elenco di app) che hanno la categoria "launcher", che è la maggior parte di esse. Spiega il comportamento riportato da rekire. – pents90

4

provare qualcosa di simile per fare clic pulsante qualsiasi si goto schermata home/...

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // Display confirmation here, finish() activity. 
     Intent startMain = new Intent(Intent.ACTION_MAIN); 
     startMain.addCategory(Intent.CATEGORY_HOME); 
     startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(startMain); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+1

Non farlo mai. –

1

Penso di essere molto in ritardo alla festa, ma ho avuto un problema simile. Le risposte qui date lanciano un menu di selezione che ti permette di scegliere il Launcher. Se hai più di un launcher nel tuo codice, la risposta qui: https://stackoverflow.com/a/8666155 potrebbe essere di aiuto. Questo direttamente avvia la schermata iniziale predefinita di di Android.

1

Nessuna delle soluzioni qui sta lavorando per me ..

ho ottenuto lavorando utilizzando il codice qui sotto

PackageManager pm = getPackageManager(); 
Intent i = new Intent("android.intent.action.MAIN"); 
i.addCategory("android.intent.category.HOME"); 
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0); 
if (lst != null) { 
    for (ResolveInfo resolveInfo : lst) { 
     try { 
     Intent home = new Intent("android.intent.action.MAIN"); 
     home.addCategory("android.intent.category.HOME"); 
     home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); 
     startActivity(home); 
     break; 
     } catch (Throwable t) { 
      t.printStackTrace(); 
     } 
    } 
} 

preso da: https://stackoverflow.com/a/16483596/1241783

Spero che questo aiuti qualcuno

0

L'ho raggiunto utilizzando una riga

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

Si comporta come tasto Home

0

Questo funziona per me!

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

qualcuno può spiegare perché abbiamo bisogno di questo?

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

btw, questo è quello che stavo cercando

moveTaskToBack(true); 
Problemi correlati