Когда я запускаю этот фрагмент кода на Android 2.3.6, он отлично работает. В 4.0 я получаю исключение StrictMode. Из некоторых вопросов о SO, похоже, что вы не можете выполнять сетевые операции в потоке пользовательского интерфейса. Но я не делаю никаких операций пользовательского интерфейса в потоке пользовательского интерфейса.
Я вызываю doBackground напрямую и не выполняю, так как мне нужно проверить возвращаемое значение doBackground. Я думаю, что нижеследующее должно было сработать.
Что мне здесь не хватает?
handler.postDelayed(new Runnable() {
@Override
public void run() {
God.identityHash = (String) new SwitchServer((IActionBar) splashScreen,
God.mCruiseOnServer, nameText, phoneNumberText)
.doInBackground(null);
if (!mIsBackButtonPressed && God.identityHash != null) {
FlurryAgent.logEvent(God.TCACCEPTED_AND_REGISTERED);
Intent intent = new Intent(SplashScreen.this, HomeScreen.class);
SplashScreen.this.startActivity(intent);
finish();
} else {
Toast.makeText(splashScreen,
"Unable to save your details. Please try again.",
Toast.LENGTH_LONG).show();
God.setTermsAndConditions(splashScreen, false);
}
}
}, SPLASH_DURATION);
Редактировать: Строгий режим не разрешен на телефоне.
это 'AsyncTask' или что-то еще, я действительно не могу понять, что вы пытаетесь сделать здесь – hardartcore
Да, я не использую AsyncTask в своем« обычном »способе в этом одном месте. – Siddharth
Я предлагаю вам использовать AsyncTask для достижения того, что вы хотите. – hardartcore