【发布时间】:2016-12-29 07:34:44
【问题描述】:
我是第一次使用 websocket,这是一个 Uber 类型的应用程序。我正在从套接字接收数据,套接字连接和接收器在公共类中,但我很困惑如何以优化的方式传递特定活动或片段的数据。据我所知,我想在必修课中使用广播接收器,但这不是一个好方法......所以任何帮助将不胜感激。
【问题讨论】:
我是第一次使用 websocket,这是一个 Uber 类型的应用程序。我正在从套接字接收数据,套接字连接和接收器在公共类中,但我很困惑如何以优化的方式传递特定活动或片段的数据。据我所知,我想在必修课中使用广播接收器,但这不是一个好方法......所以任何帮助将不胜感激。
【问题讨论】:
找到了一个很好的解决方案,我认为它不是终极解决方案,但它比 Brad cast 接收器运行得更快。
我在 Main Activity 中创建了一个接口,带有一个发送接收数据的方法。
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);
}
}
在需要Main Activity响应的Fragment Class中,我实现了上面的Main Activity接口。
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;
}
}
当我在 Main Activity 中收到数据时,我将获取当前片段,如果我希望将数据发送到该片段,那么我应该在该片段中实现 Main Activity 接口并在我有时在 Main Class 中创建一个转换数据并用值通知片段
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
}
}
}
【讨论】: