【问题标题】:Get data from internet in Android在 Android 中从 Internet 获取数据
【发布时间】:2011-12-25 17:46:13
【问题描述】:

我想从我的网站获取内容并在列表视图和文本视图中显示这些内容。我使用 jsoup 库来解析 HTML,但我的应用程序使用 25 MB 内存,如您所知,这对于应用程序来说是相当多的。

如何提高应用程序的内存效率?

【问题讨论】:

    标签: android html-parsing


    【解决方案1】:

    您可以使用 webview 显示它,而不是尝试解析它并将其转换为原生视图。

    @Override
        public void onCreate(Bundle savedInstanceState) { 
             super.onCreate(savedInstanceState);
             //.. Other setup ...   
             //Add webview     
             WebView myWebView = (WebView) findViewById(R.id.webview);
             myWebView.getSettings().setJavaScriptEnabled(true);
             myWebView.addJavascriptInterface(new JSBridge(), "JSJavaBridge");
             myWebView.loadUrl("http://my.testdomain.com/theSharedPage.html"); 
        }
    

    然后在 JSBridge 类中编写方法来处理 JS 和 Java 之间的任何交互。例如:

    private class JSBridge
    { 
        public playSound(){
             mp = MediaPlayer.create(Test.this, R.raw.mysound);   
             mp.start();
        }
    }
    

    然后在 HTML 中,使用 JSBridge 播放来自 Java 的声音。

       <script type="text/javascript">
    
                $(document).ready(function () {
                    $( '#playSound' ).click(function () {
    
                        if(typeof JSJavaBridge != 'undefined')
                              JSJavaBridge.playSound();
                    });
                });
        </script>
    

    【讨论】:

    • 不,我不想要这个,因为我的网站不适合手机。所以我必须从互联网上获取字符串并根据需要进行编辑。
    • 理想情况下,您会重写网站/页面以使用现代响应式设计技术使其适应移动设备。正如您所建议的,使用页面抓取是维护的噩梦。但是,如果您看不到其他方法,那么您实际上可以使用带有字符串的 WebView。您可以下载页面,在代码中对其进行修改,然后将字符串加载到 WebView 中。 String str = "FOO"; webview.loadData(str, "text/html", null); 祝你好运,你最终会怎样。
    • 我看不到其他方法,所以我必须使用哪个解析器?而且我在 listview 中有位图。如何提高位图的 ram 效率?
    猜你喜欢
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多