安卓 - getIntent().getStringExtra() 返回 null

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。我的方法有什么问题吗?

1个回答

7
getIntent()方法返回启动活动的Intent。当您进入另一个活动,然后再回来时,getIntent()返回的内容与您在onPause方法中所拥有的内容不同。
您可以选择将值放入用于启动活动BIntent中,然后当您再次启动活动A时,将值放入Intent中。另一种我更喜欢的选项是使用SharedPreferences来完成这个任务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接