私はurl connection.Insideのスレッドを作成しています。グローバルに宣言されている文字列に応答メッセージを格納しています。メソッドメソッドにアクセスするとnullが返されます。Javaのスレッドから値を返す方法は?
public class Rate_fetch {
String total="";
public String rate(String dt)
{
new Thread(new Runnable(){
public void run(){
try {
URL url = new URL(tally_ipaddr+"/prorate.jsp?plist="+sss.toString().trim());
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader r = new BufferedReader(new InputStreamReader(in));
String x = "";
String total = "";
x = r.readLine();
int i=0;
while(x.length()>1)
{
total=total+x.toString().trim();
i++;
x = r.readLine();
}
}
catch(Exception e){
return e.toString();
}
}
}).start();
return total;
}
私がこのメソッドを呼び出すと、nullが返されます。
Rate_fetch rf=new Rate_fetch();
String amt= rf.rate(prodList);
これを行うには、AsyncTaskが便利です。 – Swayam
totalという名前のフィールドを、同じ名前のローカル変数でシャドウします。 – flup
Ram上記の質問に対する解決策を見つけましたか?同じ問題を解決するためにplsの助けを借りてください。 –