J'essaie de convertir un fragment en activité et je rencontre un problème. J'ai 3 activités qui sont exécutées avec l'utilisation de Intentions:ProgressDialog (contexte) dans AsyncTask provoque une erreur "La fenêtre d'activité a fui"
MainActivity -> DetailsActivity -> MyPagerActivity
PagerActivity fait un travail de l'interface utilisateur et demande un AsyncTask à la fin d'envoyer des données à mon serveur. Mon AsyncTask est dans un fichier Java séparé et j'appeler la fonction avec "MyPagerActivity.this" comme contexte:
NetFuncs nu = new NetFuncs();
...
nu.FinishWork(MyPagerActivity.this, workData1, WorkData2);
Dans les NetFuncs:
private Context mContext;
....
public void FinishWork(Context context, String Data1, long Data2) {
if (networkUtils.isNetworkAvailable(context)) {
new FinishWorkServerCall(context, Data1, Data2).execute();
}
private class FinishWorkServerCall extends AsyncTask<Void, Void, Void> {
public class FinishWorkServerCall (Context context, String Data1, long Data2) {
mContext = context;
...
}
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(mcontext);
pDialog.setMessage("Finishing your work...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
....
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
pDialog = null;
}
}
Dans le monde, tout Fragment a fonctionné à merveille. Dès que je suis passé à une activité autonome, directement à pDialog.show(); les application se bloque avec l'erreur suivante:
Activity com.example.MyPagerActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView{7acbcb8 V.E...... R......D 0,0-1026,348} that was originally added here
Je googlé beaucoup et tout le monde ne cessait de parler en rejetant postExecute() et OnDestroy() et je fais les deux personnes, mais il ne contribue pas. Je pense que le problème est un problème de contexte mais je ne sais pas quel pourrait être le problème et comment le réparer. J'ai utilisé getApplicationContext(), getBaseContext(), aucun travaillé. J'ai utilisé Toast() à la place et le même problème, donc je suppose que c'est un problème contetx.
EDIT: Mon MyPagerActivity ne se ferme pas ou finition en pDialog est en cours. Il reste debout.
Quelqu'un peut m'aider s'il vous plaît comprendre quel est le problème et aider à trouver une solution?
Merci
Ajoutez votre trace de journal complète. –
ajouter le code de l'appel FinishWork dans le fragment –