【问题标题】:App closes after phoneCallTask is shown Windows phone 8显示 phoneCallTask​​ 后应用程序关闭 Windows phone 8
【发布时间】:2014-09-09 15:21:01
【问题描述】:

在主页上我调用了几种方法。第一种方法说一些文本,然后我打开 CallDialog。这是对话框的代码:

   private void CallDialog()
    {
        PhoneCallTask phone = new PhoneCallTask();
        phone.PhoneNumber = "911";
        phone.Show();

    }

在 MainPage 加载的事件处理程序中我调用:

        await Speak("Do you want me to call?");
        CallDialog();
        await Speak("ba bla");
        DispatcherTimer timer = new DispatcherTimer();
        timer.Tick += dispatcherTimer_Tick;
        timer.Interval = new TimeSpan(0, 0, 0, 0, 500);
        timer.Start();

第一行很好,然后弹出电话对话框..以下方法不执行..如果我删除所有以下方法,它一切正常..如果我放了

MessageBox.Show("something"); 

在通话任务之后,它会在通话对话框之前显示..

【问题讨论】:

  • 是的,这会启动一个不同的应用程序,将您的应用程序置于前台(如果资源不足,则将其删除)。您是否希望在运行另一个应用程序时您的应用程序仍会运行>

标签: c# windows-phone-8 phone-call


【解决方案1】:

我不确定我的理解是否正确,但是当您调用 phone.Show() 时,它基本上会跳出您的应用程序并与系统应用程序执行电话呼叫,这就是为什么您的代码之后没有执行的原因。

换句话说,打电话的不是你的应用程序(不可能),而是你的应用程序告诉系统给谁打电话。

这些任务称为启动器,如果您想继续使用您的代码,您必须等到用户完成操作,这在您的案例中是电话呼叫。

【讨论】:

  • 是的,这一切都很好,但是如果我在电话任务之后没有任何方法,并且我关闭了任务,它会返回应用程序并显示主页而不做任何事情..如果我有等待Speak() 方法崩溃...我试图捕捉错误,它说:找不到与此错误代码相关的文本 [9.9.2014 20:20:57] Nejc Lovrenčič:语音操作被系统中止呼叫例如快速应用切换或来电
  • 所以它可能会停止你的方法。我会尝试在执行 CallDialog() 之前设置一些 bool 值,然后使用 if 条件和 bool 将代码添加到 OnNavigatedTo 事件。真正的价值意味着调用已被执行,并且您可以执行与以正常方式启动应用程序时不同的操作。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多