我正在尝试设置FLAG_SHOW_WHEN_LOCKED
在我的phonegap应用程序中,但仅当显示特定页面时。为此,我有一个 Java 插件,扩展自CordovaPlugin
在以下代码中execute
method:
if (action.equals("showWhenLocked")) {
boolean showWhenLocked = args.getBoolean(0);
if (showWhenLocked) {
this.cordova.getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
} else {
this.cordova.getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
callbackContext.success();
return true;
}
它被调用为cordova.exec(null, null, 'MyPluginClass', 'showWhenLocked', [myVar])
,但在执行时我收到错误
Uncaught Error: Error calling method on NPObject. at file:///android_asset/www/cordova-2.2.0.js:984
有什么想法导致这个/我做错了什么以及如何解决它吗?如果我在创建活动时设置标志,它就可以正常工作。
我已经发现这种错误可能是由需要不可用线程的调用引起的。您的使用getWindow()
告诉我这更有可能。您很可能正在访问由另一个线程(例如 UI 线程)锁定的信息。看看科尔多瓦文档 http://docs.phonegap.com/en/2.3.0/guide_plugin-development_android_index.md.html#Developing%20a%20Plugin%20on%20Android在有关 UI 线程中的线程处理的部分中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)