我就是发送给BaseActivity 的目标订阅者,执行了两次
时间: 2024-04-05 10:32:33 浏览: 24
那么可能是因为你在 BaseActivity 中订阅事件时,注册了多次订阅者。你可以检查一下 BaseActivity 中是否存在多个地方注册了同一个事件的订阅者,如果是的话,可以将其合并成一个订阅者。
另外,也可能是因为事件发送的时候,调用了多次发送操作。你可以在发送事件的地方,检查一下是否有多次发送事件的操作。如果是的话,可以将其改成只发送一次事件的操作。
最后,你也可以在 BaseActivity 中添加日志输出,用于记录事件的发送和接收情况,以便更好地排查问题。
相关问题
LiveEventBus 传值给BaseActivity 接收端会执行两次,是什么原因
这种情况可能是因为 LiveEventBus 在发送事件时,将事件发送给了总线上的所有订阅者,而不仅仅是目标订阅者。因此,在 BaseActivity 中,可能存在多个订阅者,每个订阅者都会接收到相同的事件并执行一次。
为了避免这种情况,你可以在 BaseActivity 中检查接收到的事件是否是你所期望的,然后只在符合条件的情况下执行相应的操作。或者,你可以在发送事件时,只将事件发送给目标订阅者,而不是所有订阅者。这可以通过在发送事件时指定目标订阅者的标识符来实现。
可以帮我写一个android的baseActivity抽象类吗
当然可以,以下是一个简单的Android BaseActivity抽象类的示例代码:
```
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
initView();
initData();
}
protected abstract int getLayoutResourceId();
protected abstract void initView();
protected abstract void initData();
}
```
你可以在这个抽象类的基础上编写自己的Activity,并实现getLayoutResourceId()、initView()和initData()方法。这个抽象类可以帮助你避免重复编写Activity的基础代码,提高开发效率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)