Android - ライブラリの使い方
socketでインターネット接続すると、毎回AsyncTaskとか使わなくてはいけなくてめんどくさいので、ライブラリを使うのが一般的らしい。
参考:色んなAndroidアプリが使っているオープンソースライブラリを調べた
おすすめライブラリぽいやつ Retrofit Android Asynchronous Http Client OkHttp
とりあえず、Android Asynchronous Http Clientというのを使ってみる。
ライブラリの読み込み方
参考:Android Studioでライブラリを取り込む3つの方法 外部のリポジトリからローカルに取り込む方法が一番いい気がする。
Android Asynchronous Http ClientのInstallation & Basic Usageというところに、設定方法が書いてあった。
build.gradleのdependeciesに下記を追加する。
dependencies { compile 'com.loopj.android:android-async-http:1.4.9'}Activityでインポートする。
import com.loopj.android.http.*;使ってみる
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import com.loopj.android.http.*;import cz.msebera.android.httpclient.Header;
public class MainActivity extends AppCompatActivity { private static final String url = "http://logicky.com";
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loadAsync(); }
private void loadAsync() { AsyncHttpClient client = new AsyncHttpClient(); client.get(url, new DataAsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { String body = new String(responseBody); Log.d("TEST", "body=" + body); }
@Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { Log.d("TEST", "エラー"); } }); }}