我只是試圖將字符串攜帶到下一個活動,而不必定義任務的整個對象。我見過類似的解決方案,並讓他們工作,但不使用AsyncTask創建意圖。意圖putExtra(字符串,字符串)內AsyncTask
protected void onPostExecute(Boolean result) {
if (loggedIn && hasPin) {
Intent intent = new Intent(UniteActivity.this,
WebViewActivity.class);
intent.putExtra(PASSED_USERNAME, passUser);
startActivity(intent);
}
if (loggedIn && !hasPin) {
Intent intent = new Intent(UniteActivity.this,
CreatePinActivity.class);
intent.putExtra(PASSED_USERNAME, passUser);
startActivity(intent);
PASSED_USERNAME是一個公共靜態常量存放的包名,就像putExtra()方法要求。然後我嘗試在下一個活動中將這個值拉出來。
Intent extras = getIntent();
String username = extras.getStringExtra(UniteActivity.PASSED_USERNAME);
// carry username to next activity
Intent intent = new Intent(CreatePinActivity.this,WebViewActivity.class);
intent.putExtra(PASSED_USERNAME, username);
startActivity(intent);
永遠不會有一個字符串拉出,用戶名的值始終爲空。我已經通過調試器,發現Eclipse IDE調試器在活動之間顯示不同的意圖ID,它們從不一致。 AsyncTask是否有可能以某種方式干擾,因爲它分裂成單獨的線程?
什麼是'launchMode'爲你的目標'Activity'? –
我沒有明確地定義它。無論默認是什麼。 –
'AsyncTask'確實不應該有所作爲。你有沒有調試過,以確保你傳入的用戶名(在你把它作爲額外的'Intent'之前)不是空的? – kabuko