2011-11-09 38 views
2

我想从我的网站获取内容,并在列表视图和文本视图中显示这些内容。我使用jsoup库来解析HTML,但我的应用程序使用25 MB RAM,因为您知道这对于应用程序来说相当多。在Android中从互联网获取数据

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

回答

3

您可以使用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> 
+0

不,我不想因为我的网站,这是不适合移动phones.so我必须从互联网上获得的字符串和编辑它,因为我想要的。 – jbgamer

+0

理想情况下,您会重写网站/页面以使用现代响应式设计技术使其适应移动设备。正如你所建议的那样,使用页面抓取是一个维护噩梦。但是如果你看不到其他方式,那么你实际上可以使用带有字符串的WebView。您可以下载页面,用代码修改它,然后在WebView中加载字符串。 * String str =“ FOO”; webview.loadData(str,“text/html”,null); * 祝你好运,你最终怎么走。 – eSniff

+0

我不能看到其他方式,所以我不得不使用哪个解析器?还有我在listview中有位图。如何提高ram对位图的效率? – jbgamer