1

私は大きな問題を抱えています。

私はWindowsPhone7.1以降用のアプリを作成し、WindowsPhoneストアでも公開しています。このアプリはWindowsPhone7.1とWindowsPhone8で正常に動作し、アプリの送信プロセス中に問題はありませんでした(私のアプリも宣言しています) Windows Phone 7.5以降、すべてのOSと完全に互換性があります。

この問題はScheduled Agent、Windows Phone Mango(7.1)で完全に実行されるmyにのみ関連していますが、Windows Phone 8ではまったく起動しません(両方のOSを使用して実際のデバイスでアプリをテストしました)。

Visual Studio 2012(Express for Windows Phone)にアップグレードしたとき、2つの異なるタイプのプロジェクトを追加できることに気付きましたScheduledTaskAgent。1つはWindows Phone 7.5用で、もう1つはWindows Phone 8用です(明らかに、Visualではそうではありませんでした)。 Studio 2010 ...そして私は利用可能な唯一のもの=最初のものを使用しました)!

  1. スケジュールされたエージェントがWP8で動作していないときに、これが理由になると思いますか?
  2. 2つのプロジェクトタイプの違いは何ですか?
  3. そのタイプの2つのプロジェクトを(コードで)管理する方法は?出来ますか?
  4. 登録する必要のあるタスクを選択するにはどうすればよいですか(以下のコードを参照)?
  5. 提出プロセスは2つのScheduledTaskAgentプロジェクトで失敗しますか(私はそう思います)?

これは、起動時にタスクを登録するときのコードの重要な部分です。

PeriodicTask newTask = new PeriodicTask("MyTaskID");

newTask.Description = "my Description";

ScheduledActionService.Add(newTask);

#if DEBUG
Microsoft.Phone.Scheduler.ScheduledActionService.LaunchForTest("MyTaskID", TimeSpan.FromSeconds(5));
#endif

前もって感謝します。

4

2 に答える 2

2

2つのプロジェクトタイプの唯一の違いは、(1)WindowsPhone8が7.1ではなくWindowsPhone8をターゲットにしていることと、(2)Windows Phone7dllではなくWindowsPhone8SDKを参照していることです。

2つのプロジェクト(7.1と8.0)があるアプリケーションがあります。また、2つのバックグラウンドエージェントプロジェクト(7.1と8.0)があり、リンクされたファイルを使用してそれらの間でコードを共有しています。8.0プロジェクトの8.0エージェントと7.1プロジェクトの7.1エージェントを参照しています。この例は、2つのバージョンのコードを使用するためのベストプラクティスとして使用しました。

2つのエージェントを参照することはできません。これは、機能しないためです。

#if DEBUGを削除すると、デバッグ中にエージェントが呼び出されますか?

于 2012-12-19T18:45:56.237 に答える
0

まず、アプリのマニフェストファイルで適切な参照を取得していることを確認してください。

<ExtendedTask Name="BackgroundTask">
    <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="MyApp.Agent" Source="MyApp.Agent" Type="MyApp.Agent.ScheduledAgent" />
</ExtendedTask>

次に、エージェントライブラリはメインアプリプロジェクトで参照する必要があります。
第三に、許可された実行時間またはメモリ割り当てを超えていないことを確認してください。WP8では、バックグラウンドエージェントの上限が11MBに引き上げられました。また、バックグラウンドタスクが登録されているアプリには制限があるため、bgエージェントを使用したタスク用の空きスロットがなかった可能性があります。

于 2012-12-19T20:01:32.297 に答える