質問: Android android.view.WindowManager $ BadTokenException:ウィンドウを追加できません 私はアンドロイドアプリをFacebookにリンクして、Asyncタスクを呼び出してfbユーザーを認証し、次に別のAsyncタスクを呼び出して自分のデータベースにfbアカウントをリンクします。 2番目の非同期タスクから情報を受け取ると、コンテキスト 'this'でプロセスダイアログを表示しています。両方の非同期タスクにもプロセスダイアログがあります。時にはそれはうまく動作しますが、 `android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?`
回答: この例外は、アプリケーションがダイアログを開いてバックグラウンドスレッドからユーザーに通知しようとしているときに発生しました。 しかし、Google Playコンソールによると、例外が頻繁に発生し、非常に一貫していたようです。 アクティビティを渡す代わりに、applicationContextを使用する必要があります。 `Context appContext = this.getApplicationContext();` 行かなければならず、その代わりに `activity` へのポインタを使用します。 したがって、 `activity` または `this` のポインタを渡す代わりに、 `context` を渡すようにしてください。