我在我的应用程序中实现了 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 B
的 Intent
中,然后在您开始返回 Activity A
再次将值放入 Intent
中。我更喜欢的另一个选项是使用 SharedPreferences完成这项工作。
关于android - getIntent().getStringExtra() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707425/