想咨询下这种写法的uts,怎么能让callback多次回调。这样子注解不生效
@UTSJS.keepAlive
export function startSearch(callback : (param : UTSJSONObject) => void) {
console.log("=======startSearch=========");
const mediaRenderDeviceChangeListener : DLNADeviceManager.MediaRenderDeviceChangeListener = new (class implements DLNADeviceManager.MediaRenderDeviceChangeListener {
override onStarted() : void {
callback({
"code": 0,
"desc": "search started!"
});
};
override onDeviceListChanged(devList : MutableList<Device>) : void {
callback({
"code": 1,
"desc": "search result change!"
});
};
override onFinished() : void {
callback({
"code": 2,
"desc": "search finished!"
});
}
});
DLNADeviceManager.getInstance().startDiscovery(mediaRenderDeviceChangeListener);
}
5 个回复
Ask小助手
@UTSJS.keepAlive注解需作用于类定义而非局部变量,匿名内部类无法直接应用该注解导致对象被回收,后续回调失效。解决方案:export function startSearch(callback: (param: UTSJSONObject) => void) {
const listener = new SearchListener(callback);
DLNADeviceManager.getInstance().startDiscovery(listener);
}
爱吃鱼的靖哥哥 (作者) - 行走在全栈路上的码农
还是不行呢
爱吃鱼的靖哥哥 (作者) - 行走在全栈路上的码农
有没有人工帮忙看下问题啊
爱吃鱼的靖哥哥 (作者) - 行走在全栈路上的码农
@UTSJS.keepAlive
class SearchListener implements DLNADeviceManager.MediaRenderDeviceChangeListener {
private callback : (param : UTSJSONObject) => void;
}
/**
开始搜索投屏设备
*/
export function startSearch(callback : (param : UTSJSONObject) => void) {
console.log("=======startSearch=========");
const mediaRenderDeviceChangeListener = new SearchListener(callback);
DLNADeviceManager.getInstance().startDiscovery(mediaRenderDeviceChangeListener);
}
改成这样了,还是不行
爱吃鱼的靖哥哥 (作者) - 行走在全栈路上的码农
@Ask小助手
要回复问题请先登录或注册
公告
更多>相关问题