0

J'ai un récepteur de diffusion, et dans onRecive j'exécute Asynctask qui, lorsqu'il est exécuté, dans preExecute, affiche une boîte de dialogue en tant qu'indicateur occupé. au moment de l'exécution lorsque le AsyncTask exécute je reçois le dessous des erreurs de LogCat, pour corriger cette erreur j'ai essayé de passer getApplicationContext() comme référence au contexte au constructeur du AsyncTask mais je reçois toujours la même erreurErreur lors de la réception de l'intention de diffusion du récepteur de diffusion

s'il vous plaît laissez-moi savoir comment corriger cette erreur

Code:

//executingt the AsyncTask from onReceive 
if (sppBondState == BluetoothDevice.BOND_BONDED) { 
    Log.d(TAG, SubTag.bullet("mBCR_STATE_CHANGED", "unbonding spp wil start")); 
    ATSPPUnbond mATSPPUnbond = new ATSPPUnbond(getApplicationContext()); 
    mATSPPUnbond.execute(); 
} 
... 
... 
... 
@Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     Log.w(TAG, SubTag.msg("ATSPPUnbond.onPreExecute")); 
     ... 
     ... 
     ... 
     this.mDialog = new Dialog(this.mCtx); 
     this.mDialog.setCancelable(false); 
     this.mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     this.mDialog.setContentView(R.layout.dialog_phases); 

     this.mtvPhaseName = (TextView) this.mDialog.findViewById(R.id.act_main_tv_phase_name); 
     this.mpbBusyIndicator = (ProgressBar) this.mDialog.findViewById(R.id.act_main_pb_busy_indicator); 

     this.mtvPhaseName.setText(getApplicationContext().getResources().getString(R.string.phase_unbonding_from_remote_device)); 

     this.mDialog.show(); //line 776 
    } 

Logcat:

FATAL EXCEPTION: main 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime: Process: com.example.com.vpager_00, PID: 28161 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.adapter.action.STATE_CHANGED flg=0x4000010 (has extras) } in [email protected] 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:933) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.Handler.handleCallback(Handler.java:739) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:95) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:145) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5938) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime: Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.view.ViewRootImpl.setView(ViewRootImpl.java:691) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:288) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.app.Dialog.show(Dialog.java:312) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at com.example.com.ecoassistant_03.ActMain$ATSPPUnbond.onPreExecute(ActMain.java:776) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.AsyncTask.execute(AsyncTask.java:535) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at com.example.com.ecoassistant_03.ActMain$1.onReceive(ActMain.java:123) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:923) 
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.Handler.handleCallback(Handler.java:739)  
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:95)  
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:145)  
02-16 11:23:08.305 28161-28161/com.example.com.vpager_00 E/AndroidRuntime:  at android.app 
+0

se réfèrent http://stackoverflow.com/questions/1516211/error-receiving-broadcast-intent-problem – sasikumar

+1

@ user2121: La seule façon de montrer des éléments de l'interface utilisateur dans Android est par activité. Ne montre pas un progrès de Receiver. – kevz

+0

@sasikumar il pourrait être la même erreur..mais le lien que vous avez posté adresses autre question et je l'ai vérifié – user2121

Répondre

0
  • Vous ne pouvez pas montrer AlertDialog de Receiver parce qu'il a besoin du contexte de l'activité.

  • Au lieu de cela, vous pouvez commencer une Activity avec Theme.Dialog et commencer à AsyncTask qui montrera un AlertDialog.

+0

mais pourquoi je n'ai pas travaillé quand j'ai passé getApplicationcontext()? – user2121

+0

@ user2121: Vous pouvez consulter cette réponse pour plus de précisions http://stackoverflow.com/a/5466600/1878151 – kevz