2017-09-01 1 views
0

Je veux exécuter et charger ma deuxième activité en arrière-plan lorsque je suis dans la première activité. La deuxième activité est lourde et le chargement prend du temps. Je dois montrer ma deuxième activité après le chargement.Android - Comment charger une activité complète en arrière-plan

Voici mon code

public void onEmbellishClick(View view){ 

    Intent intent = new Intent(this,EmbellishActivity.class); 
    intent.putExtra("user_text",userText.getText().toString() + " "); 

    startActivity(intent); 
} 

Puis-je charger sur fond puis le montrer avec le code?

+0

Si vous effectuez une tâche lourde, déplacez-les dans le service d'arrière-plan ou le fil de discussion. –

+0

Les données de deuxième activité doivent apparaître avec l'activité. –

+0

doit-il s'agir d'une activité uniquement –

Répondre

1

si vous avez une tâche lourde dans votre deuxième activité que de déplacer votre tâche lourde dans le service d'arrière-plan ou le fil.

vous pouvez utiliser AsyncTask pour le travail de fond

AsyncTask permet une utilisation correcte et facile du thread d'interface utilisateur. Cette classe vous permet d'effectuer des opérations en arrière-plan et de publier des résultats sur le thread d'interface utilisateur sans avoir à manipuler les threads et/ou les gestionnaires. Android AsyncTask est une classe abstraite fournie par Android qui nous donne la liberté d'effectuer des tâches lourdes en arrière-plan et de garder le fil de l'interface utilisateur rendant ainsi l'application plus sensible.

exemple de AsyncTask

link 1

link 2

link 3

+0

Mais j'ai besoin de montrer une deuxième activité avec ses données. –

+0

vous pouvez afficher des données dans la deuxième activité tout en utilisant AsyncTask –

0

Pour que vous souhaitez utiliser les services

étape 1 Créer un fichier de classe qui l'extension du service comme ci-dessous

public class TestService extends Service { 
@Override 
    public void onCreate() { 
     // cancel if already existed 
    } 
} 

Step-2 Placez votre classe de service à l'intérieur AndroidManifest.xml

<service android:name=".TestService" /> 

étape 3 PRÉVU pour un service d'appel comme celui-ci

Intent intent = new Intent(this,TestService.class); 
startActivity(intent); 
0

Vous ne pouvez pas démarrer l'activité à partir de l'arrière-plan, car il est conçu pour s'exécuter à partir du thread principal Android. Au lieu de charger l'activité depuis l'arrière-plan, vous pouvez utiliser: AsyncTask, Gestionnaire ou même IntentService pour le même et puis obtenir le résultat sur le thread principal et mettre à jour votre interface utilisateur. Essayez d'éviter autant que possible la mise en page imbriquée et ne traitez aucune tâche lourde dans le thread principal.