In BitcoinJ, do I need to run downloadBlockChain() again after adding a new key?
Yes. You must call clearTransactions(0) on the Wallet, followed by downloadBlockChain() on the PeerGroup.

BitcoinJ is a thin client, meaning it doesn't download transactions for addresses that aren't in its wallet.

https://bitcoinj.github.io/working-with-the-wallet#replaying-the-chain