私のアプリのJAVAコードは次のとおりです。
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new GetUrl().execute(20);
}
private class GetUrl extends AsyncTask<Integer, Integer, BufferedReader> {
@Override
protected BufferedReader doInBackground(Integer... params) {
BufferedReader reader = null;
try {
URL url = null;
url = new URL("http://www.google.com");
URLConnection conn = url.openConnection();
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
}
catch (Exception e) {
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText("Error");
}
return reader;
}
@Override
protected void onPostExecute(BufferedReader reader) {
TextView tv = (TextView) findViewById(R.id.textView1);
String line = null;
try {
line = reader.readLine().toString(); /*This line if removed removes the error. Whenever i try to work with the reader, it stops working for 4.2.2 but works fine for 2.3.3*/
tv.setText(line);
}
catch( Exception e) {
tv.setText(e.getMessage());
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
リーダーを操作しようとすると、4.2.2 では機能しなくなりますが、2.3.3 では正常に機能します。以前に同様の質問を投稿し、asyncTask を使用して問題を解決するように求められましたが、実際には役に立ちませんでした。