Androidのアプリを作成しています。
AsyncTaskでサーバーサイドから取得したJSONを、呼び出し元のActivityへ渡したいです。
なので、onPostExecuteの引数を呼び出し元のActivityへ渡す方法を考えていますが
どうして良いか、よくわかりません。
onPostExecuteから、resultを呼び出し元ではないAcitivityへintentさせれば渡せるのですが
呼び出し元のActivityへresultを渡すことができません。
Java
1 2 3 4public class TestAsync extends AsyncTask<String,String,String> { 5 6 private Activity m_activity; 7 public String paramA; 8 public String paramB; 9 10 public TestAsync(Activity act){ 11 this.m_activity = act; 12 } 13 14 @Override 15 protected String doInBackground(String...parameter){ 16 paramA = parameter[0]; 17 paramB = parameter[1]; 18 19 String urls = "JSONを取得するURL"; 20 URL url = null; 21 HttpURLConnection connect = null; 22 OutputStream out = null; 23 StringBuilder response = new StringBuilder(); 24 25 26 try{ 27 28 url = new URL(urls); 29 connect = (HttpURLConnection)url.openConnection(); 30 connect.setRequestMethod("POST"); 31 connect.setRequestProperty("Content-Type","application/json"); 32 connect.setRequestProperty("Accept","application/json"); 33 connect.setDoOutput(true); 34 connect.setDoInput(true); 35 connect.connect(); 36 37 38 JSONObject jsonOjt = new JSONObject(); 39 try{ 40 json.put("paramA",paramA); 41 json.put("paramB",paramB); 42 43 }catch (JSONException e){ 44 e.printStackTrace(); 45 } 46 47 48 OutputStreamWriter writer = new OutputStreamWriter(connect.getOutputStream()); 49 writer.write(json.toString()); 50 writer.flush(); 51 writer.close(); 52 53 InputStream inpStr = connect.getInputStream(); 54 String encoding = connect.getContentEncoding(); 55 if(encoding == null){ 56 encoding ="UTF-8"; 57 } 58 InputStreamReader inReader = new InputStreamReader(inpStr,encoding); 59 BufferedReader bufre = new BufferedReader(inReader); 60 String line = null; 61 while((line = bufre.readLine()) != null){ 62 response.append(line); 63 } 64 bufre.close(); 65 inReader.close(); 66 inpStr.close(); 67 68 }catch (IOException e){ 69 e.printStackTrace(); 70 } 71 72 return response.toString(); 73 } 74 75 @Override 76 protected void onPostExecute(String result) { 77 78 //resultを呼び出し元のActivityへ渡したい。 79 } 80 81 82} 83
調べても、なかなか見つけられずにいます。
どのようにしたら良いでしょうか。。。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。