Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在不重新连接的情况下更新附近连接中的现有PayloadCallback_Android_Google Nearby - Fatal编程技术网

Android 在不重新连接的情况下更新附近连接中的现有PayloadCallback

Android 在不重新连接的情况下更新附近连接中的现有PayloadCallback,android,google-nearby,Android,Google Nearby,我的MainActivity通过附近的Connections 2.0连接到安装了Android Things的Rpi3。我需要启动SecondActivity或ThirdActivity,具体取决于我在MainActivity中收到的有效负载。第二个和第三个活动都有自己的PayloadCallback。因此,为了获得有效负载,我必须在MainActivity中断开连接,并在新活动中使用acceptConnection()方法中设置的新PayloadCallback再次连接 是否有办法保存现有连接

我的
MainActivity
通过附近的Connections 2.0连接到安装了Android Things的Rpi3。我需要启动
SecondActivity
ThirdActivity
,具体取决于我在
MainActivity
中收到的有效负载。第二个和第三个活动都有自己的PayloadCallback。因此,为了获得有效负载,我必须在MainActivity中断开连接,并在新活动中使用acceptConnection()方法中设置的新PayloadCallback再次连接

是否有办法保存现有连接,但更改PayloadCallback


代码可在上找到。我说的是
ConnectActivity
ActiveOrderActivity

您尝试做的典型模式是将所有附近的连接代码保存在一个地方(一个名为nearbyconnectionmanager的类,所有活动都可以访问该类),让您的所有不同活动为您期望的不同字节有效负载向该类注册处理程序


这样,NearByConnectionManager的onPayloadReceived()检查它接收的payloadString的值,并有一个switch语句调用相关活动的handlePayloadString()回调方法,从而将每个活动的逻辑都包含在其自身中,同时避免与您的同行断开连接和重新连接。

您可以使用服务来封装您附近的连接内容(连接、事件、错误、有效负载),并允许您的组件(如活动和片段)绑定和查询服务(通过IBinder)。无论这项服务是持久性的还是短期的,都取决于您的需要