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

Raf*_*mal 4 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);       
    }
Run Code Online (Sandbox Code Playgroud)

onPause()调用方法时,我看到已经设置了值.但在我的onResume()方法中getStringExtra()总是返回null.我的做法有什么问题吗?

ase*_*ovm 7

getIntent()返回Intent已启动活动的内容.当你去另一个活动然后回来时,getIntent()返回的内容与你在onPause方法中的内容不同

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