2011-11-09 40 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