2011-12-06 2 views
0

J'ai un écran de démarrage dans mon application qui affiche une image de démarrage tout en faisant une insertion dans la base de données, mais l'activité de démarrage ne montrera pas sa vue, cela a-t-il été fait?Activité en cours ne montrant pas les vues

public class Splash extends Activity { 

    private ChannelDB mDB; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     ImageView iv = (ImageView)findViewById(R.id.bg); 
     mDB = new ChannelDB(this); 

     try { 
      createDataBase(); 
     } catch (Exception e) { 
       Intent intent = new Intent(this,HDtvs.class); 
       e.printStackTrace(); 
       startActivity(intent); 
       this.finish(); 
       Log.d("Splash","createDataBaseException"); 
     } 
    } 

    public void createDataBase() throws Exception 
    { 

      try{ 

      }catch (Exception e){ 
       Log.d("splash","data insert exception"); 
       e.printStackTrace(); 
       Intent intent = new Intent(this,HDtvs.class); 
       startActivity(intent); 
       this.finish(); 
      } 
     } 
    } 
} 


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/splash"> 

    <ImageView android:id="@+id/bg" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/splash"/> 

</LinearLayout> 

désolé, mauvais titre et la description, corrigée, je n'ai pas utilisé AsyncTask, je viens de mettre la chose creatData dans la méthode onCreate, désolé

+1

Où est le code AsyncTask et où va-t-il appeler l'activité suivante? – havexz

+0

Où l'AsyncTask est-il en cours d'exécution? – user370305

+1

pouvez-vous ajouter le code de tâche asynchrone? – Mal

Répondre

1

Si vous souhaitez créer une base de données en arrière-plan, exécutez-la dans un nouveau thread ou placez le code dans onresume. La vue ne sera pas chargée tant que la fonction oncreate ne sera pas complète.

+0

La vue ne sera pas chargée jusqu'à ce que la fonction oncreate soit complètement terminée. Je pense que c'est le problème, thx – oratis

0

Il n'y a pas de code d'écran de démarrage que vous avez déclaré dans votre activité, c'est pourquoi votre image ne s'affiche pas et en 1 ou 2 secondes vous êtes redirigé vers une autre activité.

+0

mais je veux que l'écran de démarrage s'affiche pendant que le processus createdata est en cours d'exécution, il n'y a pas besoin d'ajouter le processus de synchro ou thread attente, non? – oratis