在我将代码部署到iOS一段时间后,手机挂断了



有没有办法跟踪Xamarin发生了什么? 我用手机的目标进行调试,然后它挂断了。我什么也做不了,不能用侧面的按钮关闭它,我可以让手机再次工作的唯一方法是按下侧面的按钮和主页按钮。 在iPhone 6s Plus上运行。

以下是我怀疑可能导致问题的一些代码。 还想知道是否有人可以看到可能导致代码问题的任何内容:

public partial class App : Application
{
public static DataManager db;
private static Stopwatch stopWatch = new Stopwatch();
private const int defaultTimespan = 1;
public App()
{
InitializeComponent();
}
public static DataManager DB
{
get
{
if (db == null)
{
db = new DataManager();
}
return db;
}
}

protected override void OnStart()
{
App.DB.InitData();
MainPage = new Japanese.MainPage();
if (!stopWatch.IsRunning) 
stopWatch.Start();
Device.StartTimer(new TimeSpan(0, 0, 1), () =>
{
if (stopWatch.IsRunning && stopWatch.Elapsed.Minutes >= defaultTimespan)
{
Debug.WriteLine("Checking database");
PointChecker.CheckScore();
stopWatch.Restart();
}
return true;
});
}
protected override void OnSleep()
{
Debug.WriteLine("OnSleep");
stopWatch.Reset();
}
protected override void OnResume()
{
Debug.WriteLine("OnResume");
// deductPoints();
stopWatch.Start();
}
}

iOS 要求在初始首次加载时设置 17 秒。这意味着必须在应用构造函数中设置主页,不能在 OnStart 中设置它。

或者,您可以将 MainPage = new ContentPage((; 放在您的应用程序构造函数中,然后在 OnStart 中替换它。但是,在构造应用程序时,必须设置主页。

我认为Android和UWP给了你一些自由,你可以在OnStart中设置它,但绝对不能在iOS中设置。

当我将调试器连接到正在运行的应用程序并且该连接中断时,我的iPhone挂起。例如,如果在 Visual Studio 调试时拔下避雷线,手机将挂起。
因此,请尝试从手机启动应用程序(未连接调试器(并检查数据电缆。

最新更新