android - getIntent()。getStringExtra()返回null

时间:2012-07-29 07:15:56

标签: android android-intent android-activity

我在我的应用程序中实现了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。我的方法有什么问题吗?

1 个答案:

答案 0 :(得分:7)

getIntent()返回已启动活动的Intent。当您转到其他活动然后返回时,getIntent()返回的内容与您在onPause方法中的内容不同

您可以选择将值放在用于启动活动Intent的{​​{1}}中,然后再次启动活动B,然后再将值放入A。另一个选项,我更喜欢使用SharedPreferences来完成这项工作。