3

好吧,我正在开发 VOIP 应用程序。下面是我的架构。
UI:使用带有 JS 函数的 Cordova。
Sencha Touch:HTML5 框架。
后端:使用 C 代码(引擎)。
JNI:使用 JNI 调用 C 函数,反之亦然。
平台:安卓。

现在我们有一个扩展 Cordova 的活动。

Cordova:
1)有一个加载webview的活动。
2)我们调用的是带有JS函数 的loadUrl
3)JS函数将JSONArray作为数据,或者只是一个UI显示JS函数。

**现在我们在 AsyncTask 中调用 loadUrl,并通过在 broadcastreceiver 中创建 Handler 以及在活动的runOnUiThread上创建。我们看到 UI 转换和 ANR 的一些滞后。**

从非 UI 线程接收数据,现在我如何调用 loadUrl 函数?


1)Doc说(加载给定的URL),这意味着它应该只在UI主线程上调用?
2)我可以在普通的java类中创建一个处理程序并在handleMessage函数中调用loadUrl吗?
3)在主要活动中创建一个处理程序并在handleMessage中调用loadUrl?
4)runOnUiThread 是最好的方法吗?
5)如果应该在UI主线程上调用loadUrl,如何实现?
6) 调用 loadUrl 的最佳方法是什么?

4

1 回答 1

1

你正在以正确的方式做到这一点。尝试以异步模式获取数据,然后通过 using 在主线程中分配。这可能对http://developer.android.com/training/articles/perf-anr.html有所帮助。

于 2013-11-10T20:01:33.183 回答