当我在 Android 2.3.6 上运行这段代码时,它运行良好。在 4.0 上,我得到一个 StrictMode 异常。从一些关于 SO 的问题来看,您似乎无法在 UI 线程上进行网络操作。但我没有在 UI 线程上做任何 UI 操作。
我直接调用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);
编辑:手机上未启用严格模式。