Tout d'abord, quelques informations sur mon projet:résultat retour de AsyncTask à un fragment
J'ai une application qui se compose de plusieurs fragments. (J'ai une classe qui étend FragmentActivity et une autre qui étend FragmentPagerAdapter.) Donc effectivement mon code est en cours d'exécution à l'intérieur des fragments. J'appelle une asynctask à l'intérieur d'un des fragments pour faire quelques calculs. AsyncTask est un fichier séparé et la classe ne se trouve pas dans la classe Fragment.
Donc 1 fichier est l'asynctask et un autre le fragment (les variables du fragment ne sont pas accessibles directement par l'asynctask !!!).
Je peux afficher le résultat de la tâche asynchrone en utilisant ProgressDialog. Cependant, je veux être en mesure de retourner les données (résultat de l'asynctask) à une variable que j'ai dans mon fragment. Ce que j'ai essayé jusqu'à présent est:
- utilisant get() de asyncatask.execute()
J'ai essayé de le faire comme ceci:
J'ai utilisé le code suivant qui a été appelé après un clic sur un bouton. Cependant, le thread principal reste bloqué et attend la fin de la tâche asynchrone.
2.Grâce loginSharePreferens
loginPreferences = getActivity().getSharedPreferences("loginPrefs", Context.MODE_PRIVATE);
loginPrefsEditor = loginPreferences.edit();
loginPrefsEditor.putString("result", result);
loginPrefsEditor.commit();
Cela m'a donné des erreurs.
3.I a également essayé cette
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
qui était similaire à la méthode 2.
4.I a essayé de créer une méthode dans mon fragment qui vient de mettre la valeur et j'ai essayé de l'appeler à l'intérieur du fragment
MyFrragment1.this.setRestult(1); // is called in the onPostExecute of the asyncTask
public void setRestult(int result){
this.test1=result; ///inside of the fragment
}
Cela m'a donné l'erreur: « Aucune instance englobante du type MyFragment1 est accessible dans la portée "
Je ne sais pas quoi d'autre à essayer. Des idées ?
http://stackoverflow.com/questions/16627492/how-to-return-an-object-to-the-fragment-from-a-nested- static-asynctask/similar question – Raghunandan
@Raghunandan Je pense que le lien que tu m'as donné fait l'inverse. Je veux récupérer le résultat de l'asynctask à mon fragment –
Aussi, ma situation est différente, je n'ai PAS l'asynctask à l'intérieur du fragment mais séparément –