Domanda

Sto creando un'applicazione fresco casa in Android.

Poiché si tratta di un app casa Io non voglio che appaia nel Launcher, nella lista di tutte le applicazioni.

Questo è abbastanza facile, ma ora vorrei le impostazioni di questa applicazione a comparire. Così, ho creato le preferenze della mia applicazione in questo modo nel Manifesto:

<activity android:name=".Preferences" android:label="@string/application_name">
<intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
</activity>

Che il lavoro abbastanza bene e mi hanno un'icona in più nel Launcher!

L'unico problema è che non succede nulla quando si fa clic sull'icona. Pertanto, posso lanciare i miei Preferenze dall'interno dell'applicazione:

final Intent preferences = new Intent(Launcher.this,Preferences.class);        
menu.add(0, MENU_PREFERENCES, 0, R.string.application_name).setIcon(
        R.drawable.ic_menu_preferences).setAlphabeticShortcut('F').setIntent(
          preferences);

Quindi, perché è la scorciatoia nel programma di avvio del tutto inutile e non fa nulla di lancio?

maggiori informazioni qui:

Entra quando lancio dall'interno dell'applicazione (preferenze vengono lanciati, ha lavorato senza problemi):

08-25 13:13:03.009: INFO/ActivityManager(63): Starting activity: Intent { cmp=com.myapp.home/.Preferences }

Quando lancio dal lanciatore ( non succede nulla ):

08-25 13:13:45.489: INFO/ActivityManager(63): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.myapp.home/.Preferences }

La mia attività:

public class Preferences extends PreferenceActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  addPreferencesFromResource(R.xml.preferences);

 }
}
È stato utile?

Soluzione

Appena trovato qualcosa! (E btw, qual è la procedura migliore da usare quando ho trovato una risposta alla mia domanda? Devo rispondo io? Qui ..)

ho dovuto usare che nel manifesto:

      <activity android:clearTaskOnLaunch="true" android:launchMode="singleTask" android:stateNotNeeded="true" (...other parameters...)>

                <intent-filter>
                          <action android:name="android.intent.action.MAIN" />
                          <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
      </activity>

Che il lavoro abbastanza bene!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top