【发布时间】:2014-08-26 14:35:33
【问题描述】:
我收到以下警告:
THREAD WARNING: exec()
call to MyPlugin.setAndroidPreferences blocked the main thread for 49ms.
Plugin should use CordovaInterface.getThreadPool().
但是从我的代码中我使用cordova.getThreadPool():
private boolean setAndroidPreferences(
final JSONArray args,
final CallbackContext callbackContext)
{
cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
try {
/* ... */
if ( /* ... */)
{
final SharedPreferences settings = cordova.getActivity().getSharedPreferences(preferenceLib, Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = settings.edit();
editor.putString(preferenceName, preferenceValue);
editor.commit();
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK));
} else { callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR));
}
} catch (JSONException e) {
e.printStackTrace();
Log.e(TAG, "getSetSharePreferences" + ": Error: " + PluginResult.Status.JSON_EXCEPTION);
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
}
}
});
return true;
}
我做错了什么?
谢谢,
【问题讨论】:
-
你能解决这个问题吗?
-
@Fabii 我不知道,但它可能是函数调用。对我来说 48 毫秒甚至对于生成线程池来说也是很多
-
啊,我明白了,我遇到了同样的问题,这更像是一个警告;如果我遇到任何可行的解决方案,我会告诉你。
-
同样的问题,即使使用 cordova.getThreadPool() 也会收到警告