基本的に、私はJSONを使用するアプリケーションを持っています。新しいHentData.execute()でJSONを取得します。それを文字列変数に渡します。しかし、私は何かをacutallyしようとすると私のプログラムがクラッシュします。新しいClass.execute()クラッシュ後のメソッドの呼び出し、アンドロイドスタジオ
HentDataは、私はそれが私のOnCreate
INSIDE作品JSON文字列を与える知っている、AsyncTaskを拡張()
new HentData().execute();
jsonToArray();
arrayToText();
これは
をクラッシュしかし、私はそれが動作します。このようにそれらを実行すると、実行します私は何とかHentDataクラスを閉じる必要がありますか?
protected void onPostExecute(String resultat){
json_string = resultat;
jsonToArray();
arrayToText();
}
これは私のdoInBackground()
protected String doInBackground(Void... voids){
try {
URL url = new URL(json_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream IS = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(IS));
StringBuilder sb = new StringBuilder();
while((json_string = bufferedReader.readLine())!=null){
sb.append(json_string+"\n");
}
bufferedReader.close();
IS.close();
httpURLConnection.disconnect();
return sb.toString().trim();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
うwhile(json_string == ""){}はHentDataの後に動作しますか? – Litenhundvilikkeinn
** No ** 1)これは文字列を比較する方法ではありません。2)UIがフリーズし、さらにアプリケーションがクラッシュする可能性があります。 –
助けていただきありがとうございます。私はonCreateの "継続"であるonPostExecuteにメソッドを置くだけです。これを行うには大丈夫ですか? – Litenhundvilikkeinn