256MB デバイスの制限事項
Windows Phone SDK 7.1.1 の説明を見ていると、256MB デバイスはバックグラウンドエージェントをサポートしていないという記述があります。
What's New in the Windows Phone SDK 7.1.1 Update
実際に 256MB のエミュレータでバックグラウンドエージェントを使用するとどのようになるのか調べてみました。
バックグラウンドエージェントについてはサンプルが公開されていますので、サンプルを使って動作を見てみます。
Windows Phone のコード サンプル
バックグラウンドオーディオプレーヤー
バックグラウンドオーディオエージェントのサンプルを実行してみましたが、普通に動作可能でした。
バックグラウンド転送サービス
バックグラウンド転送サービスのサンプルを実行してみましたが、これも普通に動作可能でした。
バックグラウンドエージェント
バックグラウンドエージェントのサンプルを実行してみたところ、これは正常に動作しません。
デバッガで追ってみると ScheduledActionService.Add() で例外(SchedulerServiceException)が発生しています。
ResourceIntensiveTask も PeriodicTask も同じです。
アプリ独自のバックグラウンドエージェントは使用できないようです。
以上のように、OSが予め持っているバックグラウンド処理(オーディオ、転送)は動作しますが、アプリ独自のバックグラウンドエージェントは動作しません。
よくみると説明に Generic background agents をサポートしていないと書いてありましたので、独自の物のみが動作しないという事のようです。
独自バックグラウンドエージェントを使用しているアプリは何らかの対策が必要になりますが、根幹に関わるような処理(タイルの書き換えをメインにしている等)が影響を受けるアプリは対策は難しそうです。