有什么方法可以跟踪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();
}
}
答案 0 :(得分:1)
iOS要求在初次首次加载时设置所有内容,时间为17秒。这意味着您必须在App构造函数中设置MainPage,而不能在OnStart中设置它。
或者,你可以放置MainPage = new ContentPage();在你的App构造函数中,它将在OnStart中被替换。但是,您必须在构建应用程序时设置MainPage。
Android和UWP我认为,给你一些自由,你可以在OnStart中设置它,但绝对不是iOS。
答案 1 :(得分:1)
当我将调试器连接到正在运行的应用程序并且该连接中断时,我的iPhone挂机。例如,如果在Visual Studio调试时拔下防雷电缆 - 手机将挂起。
因此,尝试从手机启动您的应用程序(不附带调试器)并检查您的数据库。