私は新しいアンドロイドの開発者で、最近問題があります。nullコンテキストでalertDialogを作成するとアプリケーションがクラッシュする
バックエンドasyncTaskが終了したときに、私はAlertDialog
を表示する必要があります。ただし、長い時間asyncTaskの後にアクティビティがGC'dになる可能性があります。そのため、AlertDialogの入力パラメータはnullです。この問題を解決する回避策はありますか。
public static Dialog showDialog(
Context ctx, int themeId, String title, String message,
int okStrId, android.content.DialogInterface.OnClickListener okListener,
int cancelStrId, android.content.DialogInterface.OnClickListener cancelListener) {
if (ctx != null) {
AlertDialog.Builder builder;
if (themeId > 0)
builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, themeId));
else
builder = new AlertDialog.Builder(ctx);
if (title != null)
builder.setTitle(title);
builder.setMessage(message);
builder.setPositiveButton(ctx.getString((okStrId < 0) ? R.string.ok : okStrId),
(okListener != null) ? okListener : sDefaultDialogListener);
if (cancelListener != null)
builder.setNegativeButton(ctx.getString((cancelStrId < 0) ? R.string.cancel : cancelStrId), cancelListener);
else {
builder.setCancelable(false);
}
AlertDialog ad = builder.create();
ad.show();
return ad;
}else {
Context context = SuccessFactorsApp.getAppContext();
DialogActivity.launchActivity(ctx,themeId,title,message,okStrId,okListener,cancelStrId,cancelListener);
return new AlertDialog.Builder(context).create();
}
}
私は、ダイアログをシミュレートするための活動を使用しようとしたが、DialogInterface.OnClickListener
に対処する方法はないことを確認:
私は、ダイアログを表示するには、この関数を使用します。
あなたのLogCatを投稿してください! –