Jbay Posté(e) 28 juin 2011 Share Posté(e) 28 juin 2011 Bonjour bonjour ! Je pense que le titre exprime assez mon "besoin" En fait, il y a un temps de chargement entre deux de mes activités, donc je pense que c'est tout de même plus esthétique d'avoir une ProgressDialog qui nous demande de patienter ^_^ Voila, je reste a disposition pour toute info supplémentaires ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
ChrOnOs Posté(e) 4 juillet 2011 Share Posté(e) 4 juillet 2011 Ne serait-ce pas plutôt la seconde activité qui exécute des lourds calculs dans le onCreate ? public class MySecondActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); new InitActivityAsyncTask().execute(this); } private class InitActivityAsyncTask extends AsyncTask<Activity, Void, InitActivityAsyncTask.InitActivityAsyncTaskReturn>{ @Override protected void onPreExecute() { //Avant l'execution, réalisé sur le Thread de l'UI. Possibilité de toucher au widjet de l'UI. super.onPreExecute(); this.setContentView(R.layout.please_wait); } @Override protected InitActivityAsyncTaskReturn doInBackground(Activity... params) { //Execution, réalisé sur un Thread séparé de l'UI. //Pour faire les calcul lourd sans figer l'UI //Attention à ne pas faire appel à des widget de la vue. //Mais normalement il n'y en a pas puisque la vue courante est R.layout.please_wait. Activity activity = params[0]; InitActivityAsyncTaskReturn rtn = new InitActivityAsyncTaskReturn(activity); rtn.uneImageLourdeACharger = activity.getResources().getDrawable(R.drawable.icon); return rtn; } @Override protected void onPostExecute(InitActivityAsyncTaskReturn result) { //Après l'execution, réalisé sur le Thread de l'UI. Possibilité de toucher au widjet de l'UI. super.onPostExecute(result); result.activity.setContentView(R.layout.my_second_activity); ImageView imageView = result.activity.findViewById(R.id.imageView); imageView.setImageDrawable(result.uneImageLourdeACharger); } /** * * Classe contenant toutes les données nécessaire dans onPostExecute * * */ private class InitActivityAsyncTaskReturn{ Activity activity; public Drawable uneImageLourdeACharger; public InitActivityAsyncTaskReturn(Activity activity){ this.activity = activity; } } } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.