作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想实现一种 rxjava 的 onback 双击方式
所以,我指的是this answer因为它看起来合理但不起作用它显示 toast 并退出
我观察双背的代码实现是:
private static final long EXIT_TIMEOUT = 2000;
private CompositeDisposable compositeDisposable = new CompositeDisposable();
private PublishSubject<Boolean> backButtonClickSource = PublishSubject.create();
@NonNull
private Disposable observeBackButton() {
return backButtonClickSource
.debounce(100, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(__ -> ToastUtils.showShort(R.string.back_more_toast_message))
.timeInterval(TimeUnit.MILLISECONDS)
.skip(1)
.filter(interval -> interval.time() < EXIT_TIMEOUT)
.subscribe(__ -> model.finishActivity());
}
对于onBackPressed
:
public void onBackPressed() {
backButtonClickSource.onNext(true);
}
最佳答案
OP 的问题是他的 onBackPressed()
方法是这样的:
@Override
public void onBackPressed() {
super.onBackPressed();
backButtonClickSource.onNext(true);
}
因此,诀窍是删除 super.onBackPressed()
以便您可以根据需要调整该操作。
我已经创建了一个示例,它对我有用,我刚刚删除了你的模型内容和你的 Toast
方法,这是它的样子:
public class MainActivity extends AppCompatActivity {
private static final long EXIT_TIMEOUT = 2000;
private PublishSubject<Boolean> backButtonClickSource = PublishSubject.create();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
observeBackButton();
}
@NonNull
private Disposable observeBackButton() {
return backButtonClickSource
.debounce(100, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(__ -> Toast.makeText(this, "Press once again to exit", Toast.LENGTH_SHORT).show())
.timeInterval(TimeUnit.MILLISECONDS)
.skip(1)
.filter(interval -> interval.time() < EXIT_TIMEOUT)
.subscribe(__ -> MainActivity.this.finish());
}
@Override
public void onBackPressed() {
backButtonClickSource.onNext(true);
}
}
关于android - 双击 onBack 的 Rxjava 以完成 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52358147/
可能它会有一个简单的解决方案,但我在这里阅读了很多主题,但没有办法。在 ListView 中,如果我点击一行,它会打开一个新的 Activity。在该 Activity 中,我制作了一个 httpge
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 14 年前。 Improve thi
我想实现一种 rxjava 的 onback 双击方式 所以,我指的是this answer因为它看起来合理但不起作用它显示 toast 并退出 我观察双背的代码实现是: private static
我是一名优秀的程序员,十分优秀!