gpt4 book ai didi

java - IBM移动优先: sendActionToJS not working with background service in Android

转载 作者:行者123 更新时间:2023-12-01 09:14:39 27 4
gpt4 key购买 nike

在我的应用程序中,我试图在 Android 中创建一个同步适配器服务,当应用程序被终止时,该服务将在后台运行。

该服务会调用WL.getInstance().sendActionToJS()将控件发送给js。

我正在使用:

WL.App.setKeepAliveInBackground(true);

使应用程序在后台保持 Activity 状态的方法,使用此方法,即使应用程序被终止,我也可以使用 WL 实例。

onSync.java:

    try {
JSONObject data = new JSONObject();

data.put("isConnected", true);

data.put("connRes", "MOBILE");

WL wl = WL.getInstance();

if(wl!=null){

L.e("WL is not null");

wl.sendActionToJS("isConnected", data);
}
else{
L.e("WL is null");
}


}

catch (Exception e) {
// TODO: handle exception
e.printStackTrace();




}

main.js:

WL.App.setKeepAliveInBackground(true, options);

WL.App.addActionReceiver("MIActionReceiverId", function actionReceiver(received){

console.log('MIActionReceiverId . '+JSON.stringify(received));



else if(received.action == 'isConnected') {
//Connectivity manager
console.log('isConnected. ');

var isConnected = received.data.isConnected;
console.log('isConnected. '+isConnected);

}




}

WL.getInstance().sendActionToJS() 方法不执行任何操作,也不抛出任何异常,并且 main.js 中的 addActionReceiver 没有接收到任何内容。

当应用程序被杀死并在后台运行而其余时间一切正常时,就会发生这种情况。

最佳答案

正如前面的问题中提到的,MobileFirst Android SDK 不提供在 Android 服务或其他方式中运行的官方支持,因此您尝试在此上下文中使用的 SDK 的某些方面将起作用,而某些方面可能会起作用。不是。

此外,我不相信这种使用 sendAction API 的方式是正确或可能的......

关于java - IBM移动优先: sendActionToJS not working with background service in Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com