2012-07-29 29 views
4

我已经实现onPause()onResume()方法如下我的应用程序:机器人 - getIntent()getStringExtra()返回null

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

回答

7

getIntent()返回已开始活动的Intent。当你去到另一个活动,然后再回来,有什么getIntent()的回报是你有过在方法有什么不同

你的一个选择是将值在Intent您用来启动活动B然后当您再次启动活动A再次将值放入Intent。另一种选择,我更喜欢使用SharedPreferences来完成这项工作。

相关问题