我正在为 Android cordova/phonegap 应用程序创建一个自定义插件,并且本机 Java 端启动了一个活动,其中包括由它启动的服务调用的回调。这个想法是回调每隔一秒左右就会受到服务的影响并且效果很好,但问题是我似乎无法在另一个线程中运行它,因此主cordova线程被阻塞并且应用程序完全没有响应。
根据我正在这样做的文档:
@Override
public boolean execute(String action, JSONArray args, final CallbackContext context) throws JSONException
{
/* snip */
cordova.getThreadPool().execute(new Runnable()
{
public void run()
{
Intent myIntent = new Intent(this.cordova.getActivity(), myMonitoring.class);
this.cordova.getActivity().startActivity(myIntent);
callbackContext.success();
}
});
return true;
}
我在这里意识到 JS 回调永远不会被调用(即callbackContext.success();
),因为活动被阻塞,但实际的 phonegap 线程不应该继续运行return true
吗?如果我删除startActivity
呼叫,则应用程序将按预期继续工作。