除了防抖如何避免点击按钮后重复startActivityForResult代码示例
时间: 2024-01-09 09:19:12 浏览: 136
可以通过设置一个标志位来避免重复启动Activity,例如在onActivityResult方法中设置一个标志位,当该标志位为true时,说明已经启动了Activity并且已经得到了结果,此时再次点击按钮就不会再次启动Activity。
示例代码如下:
```
private boolean isStarted = false;
public void onClickButton(View view) {
if (!isStarted) {
isStarted = true;
startActivityForResult(intent, requestCode);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == this.requestCode && resultCode == RESULT_OK) {
// 处理结果
}
isStarted = false;
}
```
相关问题
如何使用onActivityResult方法避免点击按钮后重复startActivityForResult 代码示例
可以在onActivityResult方法中判断requestCode是否为我们需要的值,如果是则执行相应的逻辑,否则不做处理。这样就可以避免重复启动Activity。
示例代码如下:
```
private static final int REQUEST_CODE = 1;
// 启动Activity
Intent intent = new Intent(this, TargetActivity.class);
startActivityForResult(intent, REQUEST_CODE);
// 处理返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回结果
}
}
```
除了防抖如何避免点击按钮后重复startActivityForResult
除了防抖之外,还可以通过在onActivityResult方法中判断requestCode来避免重复启动Activity。
具体来说,可以在启动Activity时给它设置一个requestCode,然后在onActivityResult方法中判断requestCode是否匹配,如果匹配则说明是当前Activity返回的结果,否则说明是之前启动的Activity返回的结果,可以忽略。
阅读全文