I've reviewed the docs and the sample BackupRestore app and written my own test app implementing android:backupAgent. I extended the BackupAgent class because my main concern is being able to backup data from a database. I can't seem to even make a simple proof-of-concept app work with this feature.
To make things exceptionally simple, I declared the android:backupAgent as MyBackupAgent in the manifest. I then created a class MyBackupAgent.java, extending BackupAgent. I then created overrides for the onBackup() and onRestore() functions within the MyBackupAgent class, just like in the examples and docs. I added a Log.i() call to the very beginning of each function so that I could identify within LogCat when the functions were being called. Likewise, I set breakpoints on both of these. I then went on to implement my code to backup the database.
I created an emulator image using 2.2w/Google API's and even added a gmail account under Accounts & Sync. Running through the adb commands to enable bmgr, backup the app, run the backup, uninstall the app, reinstall the app etc.... I never once get a message in the log file from the Log.i() command in either of the onBackup() or onRestore() functions.
I tried again on my Evo 4g running 2.2. Same result. It does not appear that the backup manager is calling the onBackup() and onRestore() functions in the MyBackupAgent class.
The only odd message I get in my logs is one from the BackupManagerService stating "Backup pass but e=true p=false", I believe in response to the ADB command to backup the app.
Any suggestions? Am I wrong to assume that a Log.i() statement in the onBackup() and onRestore() functions would show up in LogCat?