Good question. Looking at the docs and doing armchair coding:
It may be possible to pass an object between Activities by calling putExtras(Bundle) and myBundle.putSerializable. The object and the entire object tree would need to implement serializable.
JAL
EDIT: The answer is yes:
It is possible to pass an immutable object between Activities by calling putExtras(Bundle) and myBundle.putSerializable. The object and the entire object tree would need to implement serializable. This is a basic tenet of Object Oriented Programming, passing of stateful messages.
First we create the immutable object by declaring a new class:
package jalcomputing.confusetext;
import java.io.Serializable;
/*
 * Immutable messaging object to pass state from Activity Main to Activity ManageKeys
 * No error checking
 */
public final class MainManageKeysMessage implements Serializable {
    private static final long serialVersionUID = 1L;
    public final int lengthPassword;
    public final long timeExpire;
    public final boolean isValidKey;
    public final int timeoutType;
    public MainManageKeysMessage(int lengthPassword, long timeExpire, boolean isValidKey, int timeoutType){
        this.lengthPassword= lengthPassword;
        this.timeExpire= timeExpire;
        this.isValidKey= isValidKey;
        this.timeoutType= timeoutType;
    }
}
Then we create an immutable stateful instance of the class, a message, in the parent activity, and send it in an intent as in:
  private void LaunchManageKeys() {
        Intent i= new Intent(this, ManageKeys.class); // no param constructor
        // push data (4)
        MainManageKeysMessage message= new MainManageKeysMessage(lengthPassword,timeExpire,isValidKey,timeoutType);
        Bundle b= new Bundle();
        b.putSerializable("jalcomputing.confusetext.MainManageKeysMessage", message);
        i.putExtras(b);
        startActivityForResult(i,REQUEST_MANAGE_KEYS); // used for callback
    }
Finally, we retrieve the object in the child activity.
   try {
        inMessage= (MainManageKeysMessage) getIntent().getSerializableExtra("jalcomputing.confusetext.MainManageKeysMessage");
        lengthPassword= inMessage.lengthPassword;
        timeoutType= inMessage.timeoutType;
        isValidKey= inMessage.isValidKey;
        timeExpire= inMessage.timeExpire;
    } catch(Exception e){
        lengthPassword= -1;
        timeoutType= TIMEOUT_NEVER;
        isValidKey= true;
        timeExpire= LONG_YEAR_MILLIS;
    }