我正在尝试在我的monodroid应用程序中实现有效的异常处理,该应用程序是用Visual Studio的Xamarin.Android插件编写的.
我正在尝试处理两种类型的异常:
在全局处理程序的两种情况下,我想:
经过一定的调查后,我在这里和这里找到了一些答案,但除了AndroidEnvironment.UnhandledExceptionRaiser和AppDomain.UnhandledException之外什么都没有提出,它并不适用于所有情况.
我创建了一个简短的示例,我试图使用这两个处理程序:
AppDomain.CurrentDomain.UnhandledException += (s,e)=>
{
System.Diagnostics.Debug.WriteLine("AppDomain.CurrentDomain.UnhandledException: {0}. IsTerminating: {1}", e.ExceptionObject, e.IsTerminating);
};
AndroidEnvironment.UnhandledExceptionRaiser += (s, e) =>
{
System.Diagnostics.Debug.WriteLine("AndroidEnvironment.UnhandledExceptionRaiser: {0}. IsTerminating: {1}", e.Exception, e.Handled);
e.Handled = true;
};
Run Code Online (Sandbox Code Playgroud)
然后在按钮单击时,我添加了以下代码以引发两种类型的异常:
//foreground exception
throw new NullReferenceException("test nre from ui thread.");
//background exception
ThreadPool.QueueUserWorkItem(unused =>
{
throw new NullReferenceException("test nre from back thread.");
});
Run Code Online (Sandbox Code Playgroud)
因此,我对两种类型的异常都有不同的行为:
android exception-handling unhandled-exception xamarin.android xamarin
我用自制软件在我的Mac OS X上设置了jenkins,它工作正常,http://localhost:8080或者http://127.0.0.1:8080
我无法通过hostname/ipaddress访问jenkins实例:
1. http://myjenkinshost.local:8080
2. http://192.168.0.100:8080
Run Code Online (Sandbox Code Playgroud)
即使从本地计算机(jenkins主机本身)也无法访问这两个链接.同时命令ping 192.168.0.100和ping myjenkinshost.local工作正常.
我们的Azure SQL数据库性能会在很长一段时间内显着降低,我们会在生产中解决问题.我们知道我们在其中一个表上有锁,但是这些锁不是死锁,它们是长锁,并且在一个小时左右的时间内性能恢复正常.我们试图找到关于如何获得这些长锁的所有可能场景(每个查询都超快,所有性能分析器都可以向我们展示导致长锁的原因).这个问题的原因如下图:
Out连接池设置仅允许汇集200个连接.大多数时候,我们与数据库有大约10-20个开放/池化连接.然后突然一些活动连接开始增长,池完全被占用.虽然许多池连接保持在200以下,但我们看到许多活动连接使用sp_who2达到1.5k-2k连接(有时为4k-5k).
我使用Azure门户监控工具构建了相同的图表.它有不同的聚合期,但显示相同的问题:

我们使用的连接字符串:
Data Source = [server] .database.windows.net; initial catalog = [database]; persist security info = True; user id = [user]; password = [password]; MultipleActiveResultSets = True; Connection Timeout = 30; Max Pool大小= 200;池=真;应用= [AppName的]
考虑到200个连接的连接池限制,这怎么可能?
ps:没有周期性任务,长时间运行的查询或其他任何工具,我们检查了与sp_who2数据库的所有活动连接.
我正在尝试将玻璃器皿.APK部署到Google Glass设备,但ADB没有列出.我按照几个指南介绍了如何将Google Glass连接到Windows 8操作系统:
为了将设备连接到我的电脑,我做了以下操作.
1.安装USB驱动程序以为Android SDK Manager
2.更新android_winusb.inf文件并包含识别设备所需的行:https://dl.dropboxusercontent.com/u/83972129/android_winusb.inf
我在设备"硬件ID"设置下找到的这些ID:
3.连接设备并强制使用上面的驱动程序
https://dl.dropboxusercontent.com/u/83972129/android_device.png
看起来几乎和指南一样,它被安装为"Android ADB Interface"而不是"Android Composite ADB Interface"
然后我去了ADB工具并试图列出Android设备:
https://dl.dropboxusercontent.com/u/83972129/android_adb.png
谷歌玻璃不在那里,没有adb服务重启没有系统重启帮助.
5.因此,IDE无法看到设备,因此无法部署.APK
我该如何调试问题?这可能有什么问题?
我已在Google Play商店配置了alpha/beta测试.为此目的创建了新的Google群组,并邀请用户加入群组.
当有新的更新时,用户必须通过alpha/beta链接下载并安装更新.是否有任何选项可以将更新推送到alpha/beta测试人员(比如prod Play Store的工作原理)?
在async静态地声明我的javascript与动态相比有什么区别吗?
静态的
<html>
<head>
...
</head>
<body>
...
<div id='my-script-needs-me'></div>
<script type="text/javascript" src="https://foo.bar/myscript.js" async>
</script>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
动态
<html>
<head>
...
</head>
<body>
...
<div id='my-script-needs-me'></div>
<script type="text/javascript">
var myScript = document.createElement("script");
myScript.src = 'https://foo.bar/myscript.js';
myScript.async = !0;
myScript.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(myScript);
</script>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我注意到静态声明一个脚本让浏览器先检测到它并预加载(chrome + firefox).
我的目标是以一种async方式加载javascript,以便不阻止HTML呈现和其他脚本执行.Sametime,我希望它在下载后立即执行,记住它需要一个元素已经在DOM中.下载后,脚本将被执行并访问my-script-needs-mediv.一个限制,我不能改变脚本本身.
我已在构建服务器的当前用户下配置了MAC OS X环境(SDK,许可证等),并希望重构构建代理的所有设置.Jenkins被选为一个不错的选择,但出于某种原因,在安装过程中它创建了一个新的用户jenkins并在其下启动应用程序,导致环境设置无法访问(没有SDK,也没有找到许可证).
是否可以在当前用户下安装jenkins?可能它可以安装在jenkins下,但然后在当前用户下启动?
我要考虑任何其他好的选择.
我有一个应用程序必须报告用户位置,即使它背景甚至被杀死(终止).问题是应用程序应报告不少于1小时间隔的位置.
我正在使用重要的位置更改(SLC)来跟踪用户在旅途中的所有移动,但是一旦用户停止,则不会引发进一步的更新,并且应用程序没有机会提交新的位置(同时用户保持不变区域,但没有SLC).
为了涵盖这种情况,我开始使用Background fetches定期在后台发送更新位置,即使没有SLC).这里的问题是背景提取常常工作(自从我在另一个iOS 7.x应用程序中使用以来每20-30分钟)但现在使用iOS8/iOS9我每天只能获得一次,这是不可接受的在我的情况下.我已经执行了大量测试,开发了简单的后台获取应用程序,它在获取时添加本地通知.没有运气迫使它更频繁地工作.
这是我的AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
return YES;
}
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
NSDate *now = [NSDate date];
localNotification.fireDate = now;
localNotification.alertBody = [NSString stringWithFormat:@"Background fetch!"];
localNotification.soundName = UILocalNotificationDefaultSoundName;
NSInteger number = [UIApplication sharedApplication].applicationIconBadgeNumber;
number++;
localNotification.applicationIconBadgeNumber = number;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
completionHandler(UIBackgroundFetchResultNewData);
}
Run Code Online (Sandbox Code Playgroud)
这里所做的就是在每次后台提取时添加本地通知.我总是用UIBackgroundFetchResultNewData完成后台执行.
您对如何强制后台提取更频繁地工作(或证明链接不再可能)有任何建议吗?我们也欢迎任何符合我要求的替代解决方案!
我正在尝试在Xamarin Studio中构建一个Xamarin.iOS项目.Nuget包恢复已启用但在任何构建期间我收到以下错误:
/.nuget/NuGet.targets:错误:命令'mono --runtime = v4.0.30319"/.nuget/NuGet.exe"install"/ProjectName/packages.config"-source"" - RequireConsent -solutionDir"/"exited代码:127.(ProjectName)
从终端运行相同的命令没有任何问题,并使用以下输出消息完全正常:
恢复NuGet包...要防止NuGet在构建期间下载包,请打开"Visual Studio选项"对话框,单击"包管理器"节点,然后取消选中"允许NuGet下载丢失的包".
.nuget/NuGet.exe和.nuget/NuGet.targets是最新的.使用禁用的nuget恢复项目.csproj文件编译工作正常.
请指教.
xamarin.ios nuget xamarin xamarin-studio nuget-package-restore
我有一个动态的项目列表,每个项目可以有不同的teamplate /布局(和高度).其中一个项目类型可以有一个内部的项目列表供选择,定期5-6行,每行有不同的高度.
如果我尝试进一步描述它,在我的场景中,我在另一个tableview(#master)的tableviewcells(#master-cell)中有一个tableview(#slave).此外,我的#slave tableview中的单元格(#slave-cell)也可能具有不同的高度.所以我需要布局我的#slave让#master自动计算并更新它的大小.
我有内表(#slave)的问题.在自动布局的情况下,为了适应所有单元格空间,表格将与UILabel或其他控件不同地折叠.所以我需要的是获得#slave表的预计大小并设置#slave的#slave =内容高度的高度.
我找到了类似的帖子,如果所有行都有相同的高度,但我使用动态高度的自定义行,那么tableView.contentSize.Height给我无效的结果(基本上只是乘以rowNumbers*estimatedRowHeight,你可以在屏幕截图上看到它) ,主要项目#3有4个内部单元格).即使在调用#slave.reloadData之后我也无法达到那么大.
构建这种UI的正确方法是什么?
附带测试项目的源代码(Xamarin.iOS)
android ×3
xamarin ×3
ios ×2
jenkins ×2
xamarin.ios ×2
adb ×1
asynchronous ×1
autolayout ×1
azure ×1
beta ×1
beta-testing ×1
c# ×1
google-gdk ×1
google-glass ×1
google-play ×1
html ×1
iphone ×1
javascript ×1
macos ×1
networking ×1
nuget ×1
sql-server ×1
uitableview ×1
usb ×1