我如何 wait() 等待 snackbar onDismissed 进程完成?
How do I wait() for the snackbar onDismissed process to finish?
我想在 snackbar onDismissed 完成后启动一个进程。
if (snackbar != null){
snackbar.dismiss();
finish();
} else {
finish();
}
由于 snackbar onDismissed 是异步的,activity 将在 onDismissed 任务完成之前完成。
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
if (event != DISMISS_EVENT_ACTION) {
// Some work to be done.
}
我知道我可以在 onDismissed 中调用 finish(),但还有其他操作会导致小吃店关闭,我不希望它们完成 activity。
有没有办法在继续代码之前等待 snackbar 进程完成?
查看 Snackbar 的 Android 文档。您可以使用 DISMISS_EVENT_MANUAL 来表示来自 dismiss() 调用的小吃店的关闭。
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
if (event == DISMISS_EVENT_MANUAL) {
// Some work to be done.
activity.finish()
}
}
另一种选择是扩展 Snackbar.Callback()。像
class MyCallback extends Snackbar.Callback {
Runnable run;
@Override
public void onDismissed(...) {
// Do something
if (run) run.run();
}
}
BaseCallback<Snackbar> callback = new MyCallback();
snackbar.addCallback(callback);
然后在你想结束时执行此操作。
if (snackbar != null){
callback.run = new Runnable() {
void run() {
finish();
}
};
snackbar.dismiss();
} else {
finish();
}
我想在 snackbar onDismissed 完成后启动一个进程。
if (snackbar != null){
snackbar.dismiss();
finish();
} else {
finish();
}
由于 snackbar onDismissed 是异步的,activity 将在 onDismissed 任务完成之前完成。
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
if (event != DISMISS_EVENT_ACTION) {
// Some work to be done.
}
我知道我可以在 onDismissed 中调用 finish(),但还有其他操作会导致小吃店关闭,我不希望它们完成 activity。 有没有办法在继续代码之前等待 snackbar 进程完成?
查看 Snackbar 的 Android 文档。您可以使用 DISMISS_EVENT_MANUAL 来表示来自 dismiss() 调用的小吃店的关闭。
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
if (event == DISMISS_EVENT_MANUAL) {
// Some work to be done.
activity.finish()
}
}
另一种选择是扩展 Snackbar.Callback()。像
class MyCallback extends Snackbar.Callback {
Runnable run;
@Override
public void onDismissed(...) {
// Do something
if (run) run.run();
}
}
BaseCallback<Snackbar> callback = new MyCallback();
snackbar.addCallback(callback);
然后在你想结束时执行此操作。
if (snackbar != null){
callback.run = new Runnable() {
void run() {
finish();
}
};
snackbar.dismiss();
} else {
finish();
}