4

私は以下のように私のアプリケーションに実装onPause()し、メソッドを作成しました:onResume()

protected void onPause() {
        super.onPause();

        String receiver = phoneNoField.getText().toString();
        String message = messageBody.getText().toString();
        getIntent().putExtra(MESSAGE_RECEIVER, receiver);
        getIntent().putExtra(MESSAGE_BODY, message);

        Log.d(TAG, receiver + " " + message);       
    }


protected void onResume() {
        super.onResume();

        String receiver = getIntent().getStringExtra(MESSAGE_RECEIVER);
        String message = getIntent().getStringExtra(MESSAGE_BODY);
        if(receiver != null)
            phoneNoField.setText(receiver);
        if(message != null)
            messageBody.setText(message);

        Log.d(TAG, receiver + " " + message);       
    }

onPause()メソッドが呼び出されると、値が設定されていることがわかります。しかし、私のonResume()メソッドでgetStringExtra()は常にを返しますnull。私のアプローチに何か問題がありますか?

4

1 に答える 1

7

getIntent()Intentアクティビティを開始した を返します。別のアクティビティに行ってから戻ってきたときに返されるものは、メソッドgetIntent()で持っていたものとは異なりますonPause

オプションの 1 つは、Intentアクティビティを開始するために使用する に値を入力し、アクティビティを再びB開始するときにに値を入力することです。私が好むもう1つのオプションは、SharedPreferencesを使用して仕事をすることです。AIntent

于 2012-07-29T07:30:07.140 に答える