タスクのオブジェクト全体を定義することなく、単に文字列を次のアクティビティに運び込もうとしています。私は同様の解決策を見て、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);
引き出す文字列はありません。usernameの値は常にnullです。デバッガーを調べたところ、Eclipse IDEデバッガーはアクティビティ間で異なるインテントIDを示しており、一貫性があることはありません。AsyncTaskが別のスレッドに分割されるため、何らかの形で干渉している可能性はありますか?