Thread
не связан с деятельностью. Он не работает с основным потоком.
Android
сказал, что если вы хотите выполнять какие-либо длительные задачи, такие как api call
, data from database
, то вам нужно использовать AsyncTask или Service .
В вашем случае вы можете использовать AsycnTask
для извлечения данных.
class MyAsync extends AsyncTask<Void, Void, Void>{
final String[] resp = new String[1];
JSONObject response;
@Override
protected void onPreExecute() {
super.onPreExecute();
// Show Progress Dialog
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
// Hide Progress Dialog
if (response != null) {
version_code = response.getInt("version_code");
recommended_update = response.getBoolean("recommended_update");
forced_update = response.getBoolean("forced_update");
}
if (recommended_update) {
recomendUpadate();
} else if (forced_update)
onUpdateNeeded(url);
else {
Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}
}
@Override
protected Void doInBackground(Void... voids) {
try {
resp[0] = AttemptingUploadCheckList.getJsonObj(url);
response = new JSONObject(resp[0]);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Для выполнения вышеуказанного AsynTask
private void networkRequest() {
new MyAsync().execute();
}