私のアプリでは、非アクティビティ クラスからのカスタム ダイアログを表示しています。動作しますが、次の理由でクラッシュすることはめったにありません。
android.view.windowmanager Bad TokenException:unable to add window-
token android.os.binderproxy@2afac69d8 is not valid;is your activity running?
私のコーディング構造:
MainActivity.java(Activity class)
public class MainActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
........
UpdateClass obj = new UpdateClass(MainActivity.this);
obj.checkUpdate();
}
}
UpdateClass.java (非アクティビティ クラス)
public class UpdateClass{
UpdateClass(MainActivity mainActivity ){
this.context = mainActivity;
}
checkUpdate(){
dialog_Update = new Dialog(context);
...
updateButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
....
}
});
cancelButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog_Update.dismiss();
}
});
dialog_Update.show();
......
}
}