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方法中得到的不同

您的选择之一是将值放入Intent用于启动活动的 中B,然后在您A再次开始活动时将值放入Intent. 我更喜欢的另一个选项是使用SharedPreferences来完成这项工作。

于 2012-07-29T07:30:07.140 回答