私のアンドロイドアプリは遅れてダイアログを表示する必要があります。問題は、ダイアログが表示されるまでにコンテキストが変更されている可能性があることです。別のコンテキストでダイアログを表示するにはどうしたらいいですか?
どうすればこの問題を解決できますか?
は私のコードは今のようになります。
class UpdateRunnable extends Runnable {
private Context ctx;
UpdateRunnable(Context ctx) {
this.ctx = ctx
}
@Override
public void run() {
//throws exception: "Unable to add window -- token null is not for an application"
AlertDialog.Builder builder = new AlertDialog.Builder(ctx.getApplicationContext());
builder.setTitle("Time to refresh data");
builder.setMessage("Data needs updating");
builder.show();
}
}
class MyAvtivity extends AppCompatActivity {
@override
public void onCreate(...) {
Handler updateHandler = new Handler();
updateHandler.postDelayed(new UpdateRunnable(this), 10000);
//do some stuff
//start another activity
}
}
これは例外をスローしませんが、ダイアログが表示されません(表示されていないアクティビティに表示しようとしているため) – B1CL0PS