2016-12-29 36 views
0

我第一次使用websocket,它是一种优步应用。我从套接字接收数据,套接字连接和接收器是普通的类,但我很困惑如何以优化的方式为特定的活动或片段传递数据。根据我的想法,我想在所需的课程中使用广播接收器,但它不是一个好方法...所以,任何帮助,将不胜感激。网络插座在多个碎片和活动中发送和接收数据

回答

0

找到了一个很好的解决方案,我不认为它是最终的,但它的工作速度比布拉德演员接收器快。

  1. 我在主要活动中创建了一个接口,并使用发送接收数据的方法。

    public class MainActivity extends AppCompatActivity{ 
    
        SendData sendData; 
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.activity_main); 
        } 
    
        public interface SendData { 
         public void sendData(String data); 
        } 
    
    } 
    
  2. 在片段级,其中i从需要主要活动的响应,我实现主要活动的上述接口。

    public class Storage extends Fragment implements MainActivity.SendData{ 
    
        View view; 
    
        @Override 
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
         view = inflater.inflate(R.layout.driver_info_fragment,container,false); 
         return view; 
        } 
    
        @Override 
        public void SendData(String data) { 
         String dataReceived = data; 
        } 
    
    } 
    
  3. 当我在主要活动中收到的数据我将获得当前的片段,如果我想数据被发送到片段的话,我应该已经实现了主要活动界面在片段中创建一个铸造主要类当我有数据并通知值的片段

    public class MainActivity extends AppCompatActivity{ 
    
        @Override 
        public void notifySocketMessage(final String message) { 
         if(message != null){ 
          dataPasser = // define the fragment class name where you need to send the data. 
          dataPasser.onDataPass(message); // add the message to the notifier 
         } 
        } 
    
    } 
    
相关问题