小编Tob*_*s J的帖子

每隔几分钟获取一次Android GPS位置

我想在Android上编写一个应用程序,每隔约5分钟将我的GPS位置上传到外部网站一次.这需要尽可能减少对电池寿命的影响,但它也需要在没有任何用户交互的情况下工作.(背景:我正在参加一场铁人三项全能比赛,这将需要大约14个小时才能完成,并希望近乎实时地播放我的位置,但不必担心摆弄我的手机.)

所以我最初的想法是编写一个使用LocationManager.requestLocationUpdates()并且minTime为5分钟的服务,但这实际上是否会每5分钟唤醒一次设备以使我的服务完成其工作?

听起来我还需要使用AlarmManager.setInexactRepeating()来确保我的服务在完成任务时处于唤醒状态但是如何使用requestLocationUpdates()?我应该在requestLocationUpdates()上设置minTime = 0,但是一旦获得下一次更新,就会重新进入睡眠状态吗?

非常感谢任何关于如何设计这个的一般指导.我是一名称职的Java程序员,将在服务器上使用谷歌地图绘制我的位置,但我对Android开发很新,所以我基本上正在寻找一个关于如何构建客户端应用程序的高级计划.

gps android android-service

6
推荐指数
1
解决办法
6422
查看次数

SQL Server调试:中断错误?

在SQL 2008上调试SSMS中的SP时,我找不到任何调试选项.是否有可能在发生错误时使其中断,因此我可以检查错误引发的位置以及变量的值是什么在那时候?

我正在尝试调试的错误是:

消息8152,级别16,状态14,过程xxx,行58字符串或二进制数据将被截断.

sql-server debugging sql-server-2008

5
推荐指数
1
解决办法
3404
查看次数

Expression.Convert中的Expression.Convert

我正在尝试向Effort库中的代码块添加一些错误处理,该库生成表达式树以执行转换并将该结果分配给属性.

现有代码的问题是,在尝试将null赋值给具有值类型的属性时,在运行时调用此表达式时会抛出NullReferenceException.在这种情况下,我没有关于它试图分配的属性的信息,所以我想抛出一个更具体的异常.

以下是我第一次尝试将此逻辑封装在try/catch块中,如果转换失败则抛出异常.最后我会向InvalidOperationException添加更多信息.

blockElements.Add(
    Expression.TryCatch(
        Expression.Assign(
            Expression.Property(result, this.Properties[i]),
            Expression.Convert(
                Expression.ArrayIndex(parameter, Expression.Constant(i)),
                this.Properties[i].PropertyType)),
        Expression.Catch(typeof(NullReferenceException),
            Expression.Throw(Expression.Constant(
            new InvalidOperationException("Unhandled exception"))))));
Run Code Online (Sandbox Code Playgroud)

在我看来,这就是我想要做的:

try
{
    Property = (int)value;
}
catch (NullReferenceException)
{
    throw new InvalidOperationException("Unhandled exception");
}
Run Code Online (Sandbox Code Playgroud)

但是在运行时,该表达式现在抛出一个ArgumentException,并显示消息"Body of catch必须与try主体具有相同的类型".我在这做错了什么?我是否需要在Catch表达式中创建一个Block来"返回"一些虚拟值,即使它因为Throw而永远不会被击中?

或者我是以完全错误的方式接近这个?

c# expression-trees

5
推荐指数
1
解决办法
2051
查看次数