packagecom.example.takahiro.simpleapplication;importandroid.os.AsyncTask;/** * Created by kato_takahiro on 2016/01/19. */publicclassMyAsyncTaskextendsAsyncTask<Void,Void,String>{// コンストラクタpublicMyAsyncTask(){super();}@OverrideprotectedStringdoInBackground(Void...params){returnnull;}}
さて、MainActivity.java内で実行してみます。
このとき、 GET Weather ボタンをタップしたときに天気情報を取得するものとします。
publicclassMainActivityextendsAppCompatActivity{OkHttpClientclient=newOkHttpClient();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Toolbartoolbar=(Toolbar)findViewById(R.id.toolbar);setSupportActionBar(toolbar);<省略>// GET Weatherボタンを取得して、クリック処理を実装Buttonbtn=(Button)findViewById(R.id.button);btn.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){newMyAsyncTask(){@OverrideprotectedStringdoInBackground(Void...params){Stringres=null;try{Stringresult=run("http://api.openweathermap.org/data/2.5/weather?APPID=<自身のAPPID>&q=Tokyo");JSONObjectresJson=newJSONObject(result);JSONArrayweathers=resJson.getJSONArray("weather");JSONObjectweather=weathers.getJSONObject(0);Stringdescription=weather.getString("description");res=description;}catch(IOExceptione){e.printStackTrace();}catch(JSONExceptione){e.printStackTrace();}returnres;}}.execute();}}}// OKHttpを使った通信処理publicStringrun(Stringurl)throwsIOException{Requestrequest=newRequest.Builder().url(url).build();Responseresponse=client.newCall(request).execute();returnresponse.body().string();}}