android.view.WindowManager$BadTokenException
クラッシュ レポートにこのエラーが表示されます。一部のデバイスでは、例外が報告されるだけでアプリがクラッシュしません。他のデバイスではクラッシュが発生します。
これは、アプリがダイアログを表示する方法に関連しています。
他の回答は、グローバルなもののように間違ったものが使用されていることを示唆していますcontext
が、私の場合はそうではなく、アクティビティのコンテキストを別のオブジェクトのメソッドに渡しています。
public class Utils {
メソッドを含む
public static void noConnection(Context context){
final CustomAlertDialog alert = new CustomAlertDialog(context, context.getString(R.string.ErrorPastTense), context.getString(R.string.ErrorInternet), context.getString(R.string.OkButton), null);
View.OnClickListener listener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
int id = v.getId();
switch(id){
case R.id.alertConfirm:
alert.dismiss();
break;
default:
break;
}
}
};
alert.setListener(listener);
alert.show();
}
このような私の活動のメソッドによって呼び出されますUtils.noConnection(myActivity.this);
エラーログは、例外が次の場所で発生していることを示していますalert.show()
なぜ?そして回避方法