1

アプリケーションがバックグラウンドに入った後に何らかの処理を行う必要があるため、このコードをアプリに追加しました。

public override void DidEnterBackground (UIApplication application)
{
    int taskid = 0;
    taskid = application.BeginBackgroundTask(() => {
        if(taskid != 0)
        {
            System.IO.File.WriteAllText(System.IO.Path.Combine(AppState.Current.User.Path, "blah"), "test");
            application.EndBackgroundTask(taskid);
            taskid = 0;
        }
    });
}

次に、ファイルシステム (エミュレーター アプリ) を監視しましたが、ファイルが宛先に書き込まれませんでした。これが起こっている理由はありますか?何か不足していますか?

4

1 に答える 1

5

BeginBackgroundTask メソッドのパラメーターは有効期限ハンドラーです。バックグラウンド時間が切れる直前に実行されます。ここでタスクを終了するだけで、他には何もありません。

バックグラウンド時間が開始されるのは、BeginBackgroundTask 呼び出しの後です。

アップルのドキュメント。

MonoTouch を使用した iOS でのマルチタスク。

于 2012-09-21T20:41:35.550 に答える