지연 후 내 안드로이드 앱에 대화 상자가 표시되어야합니다. 문제는 대화 상자가 표시 될 때까지 상황이 변경되었을 수 있다는 것입니다.다른 컨텍스트에서 대화 상자를 표시하려면 어떻게해야합니까?
이 문제를 어떻게 해결할 수 있습니까?
내 코드는 지금과 같습니다
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