Ambrose Krapacs wrote:
The problem is that the application consists of itself and several other shared libraries. Selecting the delete app option removes only the application and associated data files. I could use the sysNotifyDeleteProtectedEvent notification to identify when this happens but I do not want to remove all components here I would rather have a menu item from within the application.


Neil Whitworth <[EMAIL PROTECTED]> wrote in
news:[EMAIL PROTECTED]:
Ambrose Krapacs wrote:
I want to add an uninstall feature to an application, is there a way
an application delete itself? I have not been able to find a solution
to this looking through API documentation.

If the user uses the delete app option from the main applications screen, you app and all its data are deleted (everything with the same
creator ID). Is this not good enough?




That does make it harder... We have much the same problem, and have yet to address it in full.

One solution is to create a separate uninstall app that can delete the majority of the suite of apps/library's. This can be a relatively simple app (delete every database with these creator ID's) and just leave itself behind.

Self deleting apps can be made, but we have found them to difficult to implement. Our current soultion is not very nice, but seams to work.

1) allocate a small block of memory.
2) assign this to the system (using MemPtrSetOwner)
2) copy some data from a secondary code segment to this memory
3) queue a procedural alarm for several seconds time, with a function pointer to the newly allocated memory
4) quit your app.

When the alarm fires, it will run the code in the newly allocated memory, which can the delete the just quit app.

You will leak the block of memory, but it should be just a few bytes. Enough to hold the code to find/delete a database.


--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/

Reply via email to