我的MainActivity
通过附近的连接2.0连接到安装了Android Things的Rpi3。根据我在SecondActivity
中收到的有效负载,我需要启动ThirdActivity
或MainActivity
。第二个和第三个活动都有自己的PayloadCallbacks。因此,为了到达那里的有效负载,我必须断开MainActivity的连接,并在新活动中再次连接,并在acceptConnection()方法中设置新的PayloadCallback。
是否可以保存现有连接,但更改PayloadCallback?
代码可以在github.com/Mkryglikov/BestCafe上找到。我说的是ConnectActivity
和ActiveOrderActivity
答案 0 :(得分:0)
您要执行的操作的典型模式是将所有“附近的连接”代码保存在一个位置(一个名为“附近的连接”的类,所有“活动”都可以访问的类),并使所有不同的“活动”注册处理程序该类可以满足您期望的不同BYTES有效负载。
这样,NeighborhoodConnectionsManager的onPayloadReceived()会检查其接收到的payloadString的值,并具有一个switch语句,该语句调用相关Activity的handlePayloadString()回调方法,从而使每个Activity的逻辑都包含在自身中,同时避免了需要断开与同伴的连接并重新连接。
答案 1 :(得分:0)
您可以使用“服务”封装“附近的连接”内容(连接,事件,错误,有效负载),并允许“活动”和“片段”之类的组件绑定和查询服务(通过IBinder)。不管该服务是更持久还是寿命较短,它都可以满足您的需求。