WP8.1应用在调用RequestProductPurchaseAsync时崩溃

4

我正在为Windows Phone 8.1(Runtime)编写音频播放器,并使用IBackgroundTask管理音频

我想使用应用内购买,但调用时应用程序崩溃。

var result = await CurrentAppSimulator.RequestProductPurchaseAsync(ProProductId);

没有任何例外。

此方法在try-catch块内调用。

当应用程序通过调用BackgroundMediaPlayer.Current启动IBackgroundTask(在调用RequestProductPurchaseAsync几秒钟后发生)时,会发生这种情况。

如果我在启动应用程序之后调用RequestProductPurchaseAsync而没有调用BackgroundMediaPlayer.Current,它就可以正常工作。

这种行为的原因是什么?有一些方法可以解决这个问题吗?


你遇到了什么错误?你是在后台任务中请求购买吗? - Peter Torr - MSFT
我也遇到了同样的问题,你找到解决方法了吗? - Tomáš Bezouška
我刚刚通过终止后台进程 - BackgroundMediator.Shutdown() 来解决了它。 - Tomáš Bezouška
你好!我也有同样的问题。你有任何新的解决方案吗?不幸的是,即使关闭播放器,在我的情况下也无法解决问题。而且关闭操作并不是一个好的解决方案。我认为这是微软的一个漏洞。有没有什么好的解决方法? - Boris Salimov
嗨。不,我没有找到其他解决方案。是的,我也认为这是一个糟糕的解决方案,但我们没有其他选择。我希望在WP10中这个错误已经被修复了。 - chipsetsv
显示剩余3条评论
1个回答

1
我遇到了同样的问题,应用程序会崩溃,没有异常抛出。在使用CurrentAppSimulatorCurrentApp时都会发生这种情况。
我唯一想到的解决方法是终止后台任务。
BackgroundMediaPlayer.Shutdown()

在进行IAP之前,请确保您在调用关闭之后加入一点延迟,有时在没有延迟的情况下应用程序仍会崩溃(但不会像以前那样频繁),因此我想关闭过程中可能已经出现了一些延迟。

我也没有找到其他的解决方案。而且这个解决方案也不是很好。我无法得到100%的正面结果。 - chipsetsv
这个问题有没有新的解决方案? - vITs
@Tomas,我已经使用Task.Delay(3000).Wait()添加了延迟,但有时它不起作用。而且这主要是在CurrentApp中失败。 - vITs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接