Android cordova/phonegap 응용 프로그램에 대한 사용자 정의 플러그인을 만들고 원시 자바 측 화재는 시작하는 서비스에서 호출하는 콜백을 포함하는 활동을합니다. 그 아이디어는 서비스에서 1 초마다 콜백이 발생하고 멋지게 작동하지만 문제는 다른 스레드에서이 코드를 실행할 수 없다는 것이므로 주 코드바 스레드가 차단되고 응용 프로그램이 완전히 응답하지 않는다는 것입니다. 문서를 바탕으로 코르도바 플러그인 차단 스레드
내가이 일을 해요 :@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();
) 활동이 차단하지만, 때문에해야하지 실제 폰갭 스레드 킵 return true
이후에 실행 하시겠습니까? startActivity
전화를 제거하면 앱이 예상대로 작동합니다.
Cordova 3.1.0에서 3.3.0으로 업그레이드하면 주요 스레딩 문제가 해결되었습니다. 관련 버그 (스레딩/이벤트)가 발견되어 (3.4.0) 다음 릴리스에서 수정 될 것으로 생각하여 3.4.0을 건너 뛰고 3.5.0을 기다리고 있습니다. – Oren