在我的应用程序中,我正在尝试在Android中创建一个同步适配器服务,该服务将在应用程序被杀死时在后台运行。
此服务将调用WL.getInstance()。sendActionToJS()将控件发送到js。
我正在使用:
WL.App.setKeepAliveInBackground(true);
使用此方法使应用程序保持活动状态的方法,即使应用程序被杀死,我也可以将实例用于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没有收到任何内容。
这种情况发生在应用程序被杀死并且运行后台其余时间一切正常。
答案 0 :(得分:1)
如前面的问题所述,MobileFirst Android SDK中没有官方支持在Android服务或其他方面运行,因此您尝试在此上下文中使用的SDK的某些方面将起作用,有些可能不
此外,我不相信这种使用sendAction API甚至是正确的或可能的......