FROM : Mattias Arrelid
DATE : Mon Mar 03 18:18:34 2008
On 3 mar 2008, at 18.14, Nir Soffer wrote:
> On Mar 3, 2008, at 18:24, Mattias Arrelid wrote:
>
>> I have an application that I need to restart.
>
> Why do you want to do that?
A scenario could be that the entire contents of the .app bundle has
been replaced with new stuff (e.g. the case with Sparkle).
>> An easy way to do this could be:
>>
>> [[NSWorkspace sharedWorkspace] launchApplication:executablePath];
>> [NSApp terminate:self];
>>
>> The problem is that the above solution results in confusion in the
>> system dock; sometimes the original application does manage to quit
>> before the new instance, other times not. If it does NOT manage to
>> quit before the new one is launched, the dock ends up with two
>> icons for my application; one that indicates that the application
>> is launched, another one that's indicates that it's not launched.
>> This is NOT good.
>>
>> I've seen other programs in need of a restart (e.g. the Sparkle
>> framework) using a separate helper application that simply checks
>> whether the original process has quit properly before re-launching
>> it. This sure does work, but it isn't a pretty solution.
>
> Seems pretty to me. You want use a separate process to make this
> work reliably.
It works, but I'd say it was prettier if there was a framework call to
accomplish this.
Regards
Mattias
DATE : Mon Mar 03 18:18:34 2008
On 3 mar 2008, at 18.14, Nir Soffer wrote:
> On Mar 3, 2008, at 18:24, Mattias Arrelid wrote:
>
>> I have an application that I need to restart.
>
> Why do you want to do that?
A scenario could be that the entire contents of the .app bundle has
been replaced with new stuff (e.g. the case with Sparkle).
>> An easy way to do this could be:
>>
>> [[NSWorkspace sharedWorkspace] launchApplication:executablePath];
>> [NSApp terminate:self];
>>
>> The problem is that the above solution results in confusion in the
>> system dock; sometimes the original application does manage to quit
>> before the new instance, other times not. If it does NOT manage to
>> quit before the new one is launched, the dock ends up with two
>> icons for my application; one that indicates that the application
>> is launched, another one that's indicates that it's not launched.
>> This is NOT good.
>>
>> I've seen other programs in need of a restart (e.g. the Sparkle
>> framework) using a separate helper application that simply checks
>> whether the original process has quit properly before re-launching
>> it. This sure does work, but it isn't a pretty solution.
>
> Seems pretty to me. You want use a separate process to make this
> work reliably.
It works, but I'd say it was prettier if there was a framework call to
accomplish this.
Regards
Mattias
| Related mails | Author | Date |
|---|---|---|
| Mattias Arrelid | Mar 3, 17:24 | |
| Nir Soffer | Mar 3, 18:14 | |
| Mattias Arrelid | Mar 3, 18:18 | |
| Jean-Daniel Dupas | Mar 3, 18:29 | |
| John Stiles | Mar 3, 18:38 | |
| Steven Degutis | Mar 3, 20:43 | |
| Michael Ash | Mar 3, 23:22 | |
| Steven Degutis | Mar 4, 02:48 | |
| Joe Ranieri | Mar 4, 03:27 | |
| Mattias Arrelid | Mar 4, 12:10 | |
| Michael Ash | Mar 4, 17:11 |






Cocoa mail archive

