2011-11-09 7 views
2

私のインターネットサイトからコンテンツを取得し、これらのコンテンツをリストビューとテキストビューで表示したいと考えています。私はHTMLを解析するためにjsoupライブラリを使用しましたが、私のアプリは25 MBのRAMを使用しています。Androidでインターネットからデータを取得

アプリケーションのラム効率を改善するにはどうすればよいですか?

答えて

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(); 
    } 
} 

次に、JSBridgeを使用してJavaからサウンドを再生します。

<script type="text/javascript"> 

      $(document).ready(function() { 
       $('#playSound').click(function() { 

        if(typeof JSJavaBridge != 'undefined') 
          JSJavaBridge.playSound(); 
       }); 
      }); 
    </script> 
+0

いいえ私のサイトは携帯電話には適していません。私はインターネットから文字列を取得し、私が望むように編集する必要があります。 – jbgamer

+0

モダンなレスポンシブデザイン手法を使用してモバイルデバイスに合わせるためにサイト/ページを書き換えるのが理想的です。ページスクレイピングを使用することは、あなたが示唆するように、メンテナンスの悪夢です。しかし、それ以外の方法がない場合は、実際に文字列を使ってWebViewを使用することができます。ページをダウンロードし、コードで修正してから、WebViewで文字列を読み込むことができます。 *文字列str = " FOO"; webview.loadData(str、 "text/html"、null); * 幸運にも、あなたはどうしたら結局終わりますか? – eSniff

+0

私は他の方法を見ることができませんので、どのパーサーで使用する必要がありますか?また、私はlistview.HowでビットマップについてのRAMの効率を改善することができますか? – jbgamer

関連する問題