Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's Companion Volume I/2-5

← 4 節に戻る ↑2 章トップへ 6 節に進む →


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);
}

 


← 4 節に戻る ↑2 章トップへ 6 節に進む →