I have the following code:
   ((ImageButton)findViewById(R.id.fish)).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(StartupActivity.this, GameActivity.class);
            intent.putExtra(NAME_EXTRA, ((EditText)findViewById(R.id.name)).getText().toString().trim());
            intent.putExtra(TYPE_EXTRA, FishTypes.FISH.toString());
            intent.putExtra(WORLD_TYPE_EXTRA, worldType);
            intent.putExtra(LOGO_EXTRA, BitmapFactory.decodeResource(getResources(), R.drawable.logo));
            startActivity(intent);
        }
    });
If I start activity and click on ImageButton it send me to the same Activity I was before (StartupActivity). However if I comment out the last putExtra like this:
//intent.putExtra(LOGO_EXTRA, BitmapFactory.decodeResource(getResources(), R.drawable.logo));
Then it works fine. It sends me to the GameActivity as I want. What could be the problem?
EDIT
My GameActivity looks like this:
public class GameActivity extends Activity {
public static GamePanel gamePanel;
public static String name;
public static FishTypes type;
public static String worldType;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(getWindow().FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    name = getIntent().getStringExtra(StartupActivity.NAME_EXTRA);
    type = FishTypes.parse(getIntent().getStringExtra(StartupActivity.TYPE_EXTRA));
    worldType = getIntent().getStringExtra(StartupActivity.WORLD_TYPE_EXTRA);
    gamePanel = new GamePanel(this);
    //gamePanel.bitmaps.put("logo", (Bitmap)getIntent().getParcelableExtra(StartupActivity.LOGO_EXTRA));
    setContentView(gamePanel);
    if(!StartupActivity.isNetworkAvailable()) {
        Toast.makeText(StartupActivity.getInstance(), "You have no internet connection...", Toast.LENGTH_LONG).show();
        finish();
    }
}
@Override
protected void onDestroy() {
    if(gamePanel.client != null)
        gamePanel.client.disconnect();
    StartupActivity.getInstance().reopen();
    super.onDestroy();
}
}
What I want to achieve is preloading this bitmap in StartupActivity and then just send it to the GameActivity to the GamePanel and then draw it on the canvas as a loading image. I can't load this image in GameActivity because it will be late to show it. Do you understand?