Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume I/2-5
2-5 アプリケーションの終了
アプリケーションは appStopEvent イベントを受信すると、自分自身を終了させます。これがイベントであり、起動コードではないことに注意してください。アプリケーションはこのイベントを検出し、終了しなければなりません。(次の章でイベントについて学ぶことになります。)
アプリケーションが終了する際、データベースのクローズや状態の保存などを含めた後処理をすることができます。
終了ルーチンでは、アプリケーションはまず開いているレコードを全てフラッシュし、次にデータベースをクローズします。最後に次回の起動に必要な現在の状態を保存します。リスト2.3 に例として Datebook.c の StopApplication ルーチンを示します。
リスト 2.3 Datebook.c の StopApplication 関数
static void StopApplication (void) { DatebookPreferenceType prefs; // Write the preferences / saved-state information. prefs.noteFont = NoteFont; prefs.dayStartHour = DayStartHour; prefs.dayEndHour = DayEndHour; prefs.alarmPreset = AlarmPreset; prefs.saveBackup = SaveBackup; prefs.showTimeBars = ShowTimeBars; prefs.compressDayView = CompressDayView; prefs.showTimedAppts = ShowTimedAppts; prefs.showUntimedAppts = ShowUntimedAppts; prefs.showDailyRepeatingAppts = ShowDailyRepeatingAppts; // Write the state information. PrefSetAppPreferences (sysFileCDatebook, datebookPrefID, datebookVersionNum, &prefs, sizeof (DatebookPreferenceType), true); // Send a frmSave event to all the open forms. FrmSaveAllForms (); // Close all the open forms. FrmCloseAllForms (); // Close the application's data file. DmCloseDatabase (ApptDB); }