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

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

最佳答案

getIntent() 返回启动 Activity 的 Intent。当您转到另一个 Activity 然后返回时,getIntent() 返回的内容与您在 onPause 方法中返回的内容不同

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

关于android - getIntent().getStringExtra() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707425/

相关文章:

java - 在完成之前将数据从一项 Activity 发送到另一项 Activity

android - 在读取 sqlite 数据库时遇到问题

java - 应用程序因 if 语句而崩溃

android - 在 Android 上超时后强制登录

Android:检查用户设备上是否存在 Facebook 应用程序

java - Web 应用程序中仪表板的架构(基于 Java)

android - 任务、后退按钮和 onSaveInstanceState 方法

java - Android studio appcombat 操作栏设置

android - 如何强制使 WebView 父级变暗以便我可以使用 WebSettingsCompat.FORCE_DARK_AUTO?

android - 如何从 HomeScreen Widget 调用 Activity 中的函数