您好!欢迎光临工博士商城

PEPPER软银机器人服务商

产品:19    
联系我们
联系方式
  • 联系人:陈诗洁
  • 电话:18621383650
  • 邮件:CSJ@gongboshi.com
  • 手机:18621383650
新闻分类
站内搜索
 
友情链接
首页 > 新闻中心 > Activity失去Pepper机器人焦点用onRobotFocusLost回调
新闻中心
Activity失去Pepper机器人焦点用onRobotFocusLost回调
发布时间:2019-11-19        浏览次数:150        返回列表
Activity失去Pepper机器人焦点用onRobotFocusLost回调


声明:本媒体部分图片、文章来源于网络

版权归原作者所有,如有侵权,请与我联系删除。



pepper机器人

失去机器人焦点
Activity失去机器人焦点, onRobotFocusLost 回调被每个注册在Activity上的RobotLifecycleCallbacks 调用:

void onRobotFocusLost();
Warning


这个回调在后台线程中运行, 所以你无法直接在其中操作UI组件. 请参阅返回UI线程 以在UI线程中运行你的代码.

有关何时 Activity 可以失去焦点的更多信息, 请参阅 Link with the Activity lifecycle.

对于actions的影响
调用此回调时, Activity 在重新获得机器人焦点之前,不能在Pepper上运行actions:

// This will fail if robot focus is lost.
say.run();

此外,如果 onRobotFocusLost 在操作正在运行时调用,则操作执行将停止并将引发异常:

// This will raise an exception.
say.run();
say.async().run().thenConsume(future -> {
if (future.isSuccess()) {
// This will not be called.
} else if (future.hasError()) {
// This will be called.
}
});

因为Listeners可以在没有PEPER\\\\机器人焦点的情况下被触发,所以应当删除onRobotFocusLost 回调下所有的Listeners:

// Remove listeners from LookAt.
if (lookAt != null) {
lookAt.removeAllOnPolicyChangedListeners();
}

对服务 services的影响
当机器人焦点丢失时,机器人服务不会受到影响.

这意味着与services创建的Future将继续执行,并且仍将触发与任何服务关联的Listeners :

// The Future will continue its execution.
Future

因为可以在没有机器人焦点的情况下触发Listeners, 你应该删除所有在 onRobotFocusLost 回调中的service listeners:

// Remove listeners from HumanAwareness.
if (humanAwareness != null) {
humanAwareness.removeAllOnHumansAroundChangedListeners();
}

如果一个 service listener 没有在onRobotFocusLost 回调中移除, 则会在所有应用程序生命周期(lifecycle)内触发该Listener.




分享到: 


 

联系热线:18621383650 联系人:陈诗洁 联系地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012

技术和报价服务:星期一至星期六8:00-22:00 PEPPER软银机器人服务商

返回
顶部