Java Android:当两个触发器之间的时间非常短时,活动(片段)中的回调会从服务中以相同的值触发
我有一个连接到线程中的套接字的服务。当套接字接收到消息时,它通过(静态)接口在片段中触发回调。现在,当在非常短的时间(.3秒)内收到两条消息时,将触发两次回调,但返回值相同 代码: 在服务中,我声明了如下接口:Java Android:当两个触发器之间的时间非常短时,活动(片段)中的回调会从服务中以相同的值触发,java,android,multithreading,sockets,android-service,Java,Android,Multithreading,Sockets,Android Service,我有一个连接到线程中的套接字的服务。当套接字接收到消息时,它通过(静态)接口在片段中触发回调。现在,当在非常短的时间(.3秒)内收到两条消息时,将触发两次回调,但返回值相同 代码: 在服务中,我声明了如下接口: public interface OnVideoViewTokenReceived { void videoViewTokenReceived(String videoStreamToken, String cameraId); } public static void setO
public interface OnVideoViewTokenReceived {
void videoViewTokenReceived(String videoStreamToken, String cameraId);
}
public static void setOnVideoViewTokenReceived(OnVideoViewTokenReceived _onVideoViewTokenReceived) {
Log.d(TAGSHRDL, "_onVideoViewTokenReceived set");
onVideoViewTokenReceived = _onVideoViewTokenReceived;
}
public static OnVideoViewTokenReceived onVideoViewTokenReceived;
在线程中,服务连接到套接字并接收消息frm it:
networkThread = new Thread() {
@Override
public void run() {
...
socket.addListener(new WebSocketAdapter() {
@Override
public void onTextMessage(WebSocket websocket, String message) throws Exception {
....
streamToken = messageJSON.getJSONObject("payload").getString("token");
Handler handler = new Handler(Looper.getMainLooper()); //!!!Without this, token will not be received in the fragment
handler.post(new Runnable() {
@Override
public void run() {
onVideoViewTokenReceived.videoViewTokenReceived(streamToken, camId);
}
});
}
}
};
networkThread.start();
在我的片段中:
GeneralSocketService.setOnVideoViewTokenReceived(new GeneralSocketService.OnVideoViewTokenReceived() {
@Override
public void videoViewTokenReceived(String videoStreamToken, String camId) {
for (int i = 0; i<9 ; i++){
....}
GeneralSocketService.setOnVideoViewTokenReceived(新的GeneralSocketService.OnVideoViewTokenReceived(){
@凌驾
已接收公共无效VideoViewToken(字符串videoStreamToken,字符串camId){
对于(int i=0;我可以尝试使用livedata吗?侦听而不是回调?谢谢@RameshKumar。我真的希望看到纯java存在的问题。我的代码中应该有一些缺陷。这也是java,但有一些观察家。如果需要,任何方法都可以添加延迟,或者在方法调用中添加类似同步的锁