【发布时间】:2015-03-17 04:46:36
【问题描述】:
我正在为 Windows Phone 8.1(运行时)编写 Audio Player,我使用 IBackgroundTask 来表示 audio。
我想使用应用内购买,但调用时应用程序崩溃
var result = await CurrentAppSimulator.RequestProductPurchaseAsync(ProProductId);
没有任何例外。
这个方法在 try-catch 块中被调用。
当应用程序已经通过调用BackgroundMediaPlayer.Current 启动IBackgroundTask 时会发生这种情况(在调用RequestProductPurchaseAsync 几秒钟后发生)。
如果我在启动应用程序后调用RequestProductPurchaseAsync而不调用BackgroundMediaPlayer.Current,它可以正常工作。
这种行为的原因是什么?有一些方法可以解决这个问题吗?
【问题讨论】:
-
你得到的错误是什么?您是否在内部后台任务请求购买?
-
我没有收到错误,应用程序崩溃而没有任何消息。使 UI 和后台任务崩溃。我请求从 UI 购买。在调试应用程序不会崩溃。
-
如果没有更多上下文,就不可能说出发生了什么。随机猜测:你没有调用 UI 线程?
-
我尝试了很多变体:从 UI 线程,从新线程,有等待,没有等待 - 我总是得到相同的结果。上下文:在启动应用程序调用
BackgroundMediaPlayer.Current以启动音频背景并添加事件处理程序BackgroundMediaPlayer.MessageReceivedFromBackground += OnMessageReceivedFromBackground之后。用户单击“捐赠”按钮并调用var result = await CurrentAppSimulator.RequestProductPurchaseAsync(ProProductId);后,应用程序崩溃。 -
我也遇到了同样的问题,请问您找到解决方法了吗?
标签: c# crash windows-phone in-app-purchase windows-phone-8.1