I sporadically have the same problem with Activity_Create being called when returning from the Scan call. I would say it does this 10% of the time. I thought at first it was related to the amount of time it took to scan, but I can set it down for 5 minutes and come back and scan and it will return to my app with no activity_create being called, other times it will occur even if I scan immediately ... not sure why.
For now, I use File to create a file before a scan starts and then delete that file after the scan result comes back good. I modified activity_create to check for the existence of this file and to display an error and redo the scan. It would be ideal if we could store the scan results in a file before returning, and read that if activity_create gets called (to avoid a rescan). My experience is that the scan results are lost when activity_create get called on the return, is that yours?