我在我的应用程序中实现了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
。我的方法有什么问题吗?
答案 0 :(得分:7)
getIntent()
返回已启动活动的Intent
。当您转到其他活动然后返回时,getIntent()
返回的内容与您在onPause
方法中的内容不同
您可以选择将值放在用于启动活动Intent
的{{1}}中,然后再次启动活动B
,然后再将值放入A
。另一个选项,我更喜欢使用SharedPreferences来完成这项工作。