所以基本上我做了它,所以我的应用程序在后台运行,如果手机被锁定
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
然后我创建了一个事件,所以当应用程序被遮挡(手机被锁定)时,它会运行以下操作。
PhoneApplicationFrame phoneAppRootFrame = RootFrame;
App.RootFrame.Obscured += RootFrame_Obscured;
现在这是我的请求代码..它有一些问题,虽然我不知道是什么。我一直在尝试这么多不同的方式来做一个简单的get请求,我甚至不需要解析任何响应。它似乎永远不会起作用,无论如何它是:
private void RootFrame_Obscured(object sender, ObscuredEventArgs e)
{
string url = "http://localhost:8080/someserver/javaQuery?request=storeId&id=someId";
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.CreateHttp(url);
webRequest.BeginGetResponse(new AsyncCallback(httpComplete), webRequest);
}
private static void httpComplete(IAsyncResult asyncResult){
}
我完全肯定RootFrame_Obscured函数正在运行,但请求代码本身可能是错误的。任何见解都会有所帮助,谢谢。
答案 0 :(得分:0)
您不能在锁定屏幕下执行网络呼叫。
Checklist for apps that disable app idle detection
如果您的Windows Phone应用程序禁用应用程序空闲检测以在...下运行 锁屏,你应该执行以下任务来减少你的工作 锁定屏幕启动时应用程序的耗电量。
- 向您的应用发出新网络信号 不应执行请求和隔离存储操作。
如果您需要跟踪此事件,可以在Unobscured
事件处理程序中执行此操作。