@david,
My assumption is that Terminated is then used to load a potential state saved onto permanent storage. If the application is loaded for the first time on the machine, I would get a NotRunning, no saved state is available, so it would have to be created.
All other executions of the app would provide Terminated.
However, assume I receive a Terminated, then load saved state, then the application crashes...the next event, the way I understand your post, is that I would receive a NotRunning. In that case, how can I discriminate between NotRunning - first time
it is launched (the ActivationKind enumeration would contain a 0-Launch) and NotRunning - app crashed but I have saved state!
With this in mind it seems to me that I should be checking for both every time (otherwise, recovering after a crash would not load state). Can you clarify further? Thx!