2010-04-06 4 views
13

Quando avvio la mia applicazione inizialmente, viene visualizzato uno schermo nero che rimane per alcuni secondi prima dell'avvio dell'attività principale. In caso di iphone viene visualizzata un'immagine con nome predefinito per quella frazione di secondo. Non sono sicuro di come fare lo stesso in Android. Ho cercato, come di seguito invano:Come evitare la schermata nera all'avvio dell'applicazione

  <activity android:name=".Index" 
       android:label="@string/app_name" 
       android:screenOrientation="portrait" 
       android:theme="@drawable/defaultimage"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
+2

Nel tuo metodo onCrea ci sono delle cose intensive? Puoi pubblicare quello. –

risposta

15

Credo di avere un'operazione pesante sul metodo onCreate della vostra attività "Indice".

Si dovrebbero mettere le operazioni pesanti su un thread e creare una schermata iniziale con l'immagine, e quando il thread è finito, caricare il menu o qualsiasi cosa sia necessaria.

Ad esempio, è possibile creare una "schermata di caricamento". È davvero facile con Android: https://developer.android.com/guide/appendix/faq/commontasks.html#progressbar o https://developer.android.com/reference/android/widget/ProgressBar.html

+0

grazie per i vostri commenti, ho 30 icone di immagini sulla mia schermata iniziale e ho scritto ascoltatori onclick per tutte quelle immagini come ImageView img1; img1.setOnClickListener (nuova ImageView.OnClickListener() { public void onClick (Visualizza v) { Intent explicitIntent = new Intent (Index.this, xxx.yyy.zzz.MyActivity.class); startActivity (explicitIntent); } }); dubito di come usare thread in questo caso. – ganesh

+3

ho ricevuto la risposta da http://android-developers.blogspot.com/2009/03/window-backgrounds-ui-speed.html. – ganesh

+0

Ottimo post! Ottima soluzione! Grazie mille, ho passato un sacco di tempo a cercare di capirlo. –