Domanda

Ho un'applicazione senza attività di lancio che funziona correttamente da Android 1.5 ad Android 2.3.4. È avviato dal mio ricevitore di trasmissione. Tuttavia, su Honeycomb (Motorola Xoom), il mio ricevitore di trasmissione non funziona affatto (non cattura alcun intenzione). Se aggiungo attività di lancio al mio manifest:

<activity android:label="@string/app_name" android:name="com.myapp.MainActivity"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 
</activity>

Quindi la mia app funziona correttamente (il ricevitore di trasmissione cattura tutti gli intenti necessari e inizia i miei servizi).

Sarei molto grato per l'aiuto!

È stato utile?

Soluzione

Stai eseguendo Honeycomb 3.1 o superiore? Se sì, dai un'occhiata qui. Quando l'applicazione è installata, è nello stato di arresto. Quando l'applicazione viene lanciata per la prima volta, viene spostata dallo stato fermo.

Un'applicazione nello stato di arresto non inizierà da tutti gli intenti di trasmissione. Il mittente dell'intento di trasmissione deve specificare il Intent.flag_include_stopped_packages Flag se vuole avviare anche le applicazioni interrotte.

Intent intent = new Intent(MY_INTENT_ACTION);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);

Se non riesci a modificare il codice che invia l'intento, la tua scommessa migliore sarebbe quella di mantenere l'attività di lancio. Ogni volta che l'utente lancia l'applicazione dopo l'installazione, verrà spostato dallo stato interrotto e inizierai a ricevere trasmissioni.

Nota che l'utente può riportare l'applicazione nello stato arrestato da Gestisci applicazioni nelle impostazioni del dispositivo.

Altri suggerimenti

Su Android 3.1 e superiore, BroadcastReceivers non verrà invocato fino a quando l'utente non avrà avviato l'applicazione almeno una volta con alcuni altri mezzi, come il lancio di un'attività.

Poiché gli utenti tendono a essere molto confusi da applicazioni che non hanno un'attività, in primo luogo avresti dovuto avere un'attività, per aiuto online se non altro. Con Android 3.1, è ancora più importante.

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