Androidネットワーク接続処理
6736 ワード
抜粋:http://www.cnblogs.com/feisky/archive/2010/01/13/1646919.html>>http://www.cnblogs.com/feisky/archive/2010/01/13/1646919.html
Androidでは、ネットワークプログラミングを実現するための様々な方法があり得る。 URLを作成し、URLConnection/HttpURLConnection を使用します。 HttpClient を使用します。 Web View を使用します。
URLを作成し、URLConnection/HttpURLConnectionを使用します。
java.net.*以下はHTTPサービスにアクセスする基本機能を提供します。この部分のインターフェースを使う基本的な操作は主に以下の通りである。は、URL及びURLConnection/HttpURLConnectionオブジェクト を作成する。接続パラメータを設定する はサーバ に接続されています。は、サーバにデータを書き込む 。サーバからデータを読み出す ソース:
HttpClient類に対しては、HttpPostとHttpGet類とHttpResonseを使用してネットワーク接続ができます。
WebViewを使う
Android携帯には高性能webkitカーネルブラウザが内蔵されており、SDKにはWebViewのコンポーネントが実装されている。
http://developer.android.com/guide/tutorials/views/hello-webview.htmlは、簡単な例を提供する。
1.webviewのXML定義:
3.JavaScriptをサポートしたい場合:
webview.get Settings()set JavaScript Enbaled(true)
4.ウェブビューにウェブページを表示する必要があれば、内蔵ブラウザでブラウズするのではなく、mWebView.set WebView Clientを必要とし、ShoruldOverrideUrlLoading方法を書き換える。
5.何も処理しないなら、Browser UIを表示する時、システム「Back」ボタンをクリックして、Browser全体を一つの「Back」として、他のActivityに行って、Browserの歴史ページでBackを希望しないでください。歴史ページでBackを実現するには、現在のActivityでBackイベントを処理する必要があります。
以上はloadUrl方式を採用してウェブページのローディングを実現するものであり、loadDataまたはloadData WithBaseURL方法を採用してウェブページのローディングを実現することもできる。
webview.loadData()、「text/html」、「utf-8」);
もしhtmlに中国語が含まれているなら、webview.loadData(URLEncoder.encode()、encoding)、mimeType、encoding)が必要です。
ローカル画像またはウェブページの表示には、loadUrlが使用されてもよいが、Urlのアドレスプレフィックスは、file:/などである。file:///android_asset/test.htm」をクリックします。
Androidでは、ネットワークプログラミングを実現するための様々な方法があり得る。
URLを作成し、URLConnection/HttpURLConnectionを使用します。
java.net.*以下はHTTPサービスにアクセスする基本機能を提供します。この部分のインターフェースを使う基本的な操作は主に以下の通りである。
try {// URL URL url = new URL("http://t.sina.cn/fesky");// URL URLConnection connection = url.openConnection();// HTTP HttpURLConnection,// HTTP , setRequestMethod() // HttpURLConnection connection// =(HttpURLConnection)url.openConnection(Proxy_yours);// connection.setConnectTimeout(10000);connection.addRequestProperty("User-Agent", "J2me/MIDP2.0");// connection.connect();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}
Http Clientを使うHttpClient類に対しては、HttpPostとHttpGet類とHttpResonseを使用してネットワーク接続ができます。
WebViewを使う
Android携帯には高性能webkitカーネルブラウザが内蔵されており、SDKにはWebViewのコンポーネントが実装されている。
http://developer.android.com/guide/tutorials/views/hello-webview.htmlは、簡単な例を提供する。
1.webviewのXML定義:
<WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
2.Manifestファイルにおけるパーミッションの設定:webview.get Settings()set JavaScript Enbaled(true)
4.ウェブビューにウェブページを表示する必要があれば、内蔵ブラウザでブラウズするのではなく、mWebView.set WebView Clientを必要とし、ShoruldOverrideUrlLoading方法を書き換える。
5.何も処理しないなら、Browser UIを表示する時、システム「Back」ボタンをクリックして、Browser全体を一つの「Back」として、他のActivityに行って、Browserの歴史ページでBackを希望しないでください。歴史ページでBackを実現するには、現在のActivityでBackイベントを処理する必要があります。
WebView webview;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// WebView webview = (WebView) findViewById(R.id.webview); // JavaScriptwebview.getSettings().setJavaScriptEnabled(true); // WebView , ,// mWebView.setWebViewClient, // shouldOverrideUrlLoading 。webview.setWebViewClient(new WebViewClientDemo());// webview.loadUrl("http://t.sina.cn/fesky")@@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// BACK if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true; } return super.onKeyDown(keyCode, event);}private class WebViewClientDemo extends WebViewClient { @Override // WebView public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
以上はloadUrl方式を採用してウェブページのローディングを実現するものであり、loadDataまたはloadData WithBaseURL方法を採用してウェブページのローディングを実現することもできる。
webview.loadData()、「text/html」、「utf-8」);
もしhtmlに中国語が含まれているなら、webview.loadData(URLEncoder.encode()、encoding)、mimeType、encoding)が必要です。
ローカル画像またはウェブページの表示には、loadUrlが使用されてもよいが、Urlのアドレスプレフィックスは、file:/などである。file:///android_asset/test.htm」をクリックします。