我有Android应用程序,运行24/7 Phone的服务每5分钟获取一次GPS位置并发送到服务器.这是要求.
我可以为iPhone编写相同的服务吗?我不确定是否可能.
我可以为WP7编写相同的服务吗?我认为之前无法运行服务.7.5中有什么变化吗?
编辑:我不确定为什么有人会投票.具体是/否问题.
下面是我的一些错误记录代码.当我的应用程序内发生异常时,我将其记录到数据库中.如果该数据库已关闭或存在其他问题,我会尝试在事件查看器中记录它.
如果事件查看器由于某种原因写入失败会发生什么?我如何放弃或吞下这个新例外?
void SaveLog(string accountId, Exception ex, Category category, Priority priority)
{
try
{
using (var connection = new SqlConnection(…))
{
connection.Open();
command.ExecuteNonQuery();
}
}
catch (Exception exception)
{
// exception while logging!
using (var eventLog = new EventLog { Source = "tis" })
{
eventLog.WriteEntry(
exception.Message + Environment.NewLine +
exception.StackTrace,
EventLogEntryType.Error);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我将使用protobuf-net库和我的WCF服务.客户端是Java-Android,我在那边使用proto文件.
我应该在.NET端手动编写类,还是protobuf-net以某种方式支持.proto文件?
我需要某种控件来包装我的UI(使用绑定生成).目前我使用ListBox但不确定它是否是最轻或最好的选择.我只需要占位符,我可以绑定并插入我的控件.

我们公司向驱动程序提供Android设备.我们的应用程序不应该使用超过1Gb的通信性质.
但是,一些驱动程序设法使用大约10Gb的数据:)
所以,我想知道:
有没有办法跟踪我们的应用程序与其他应用程序的数据使用情况,以便我们可以通知用户和上班族?
有没有办法从我们以外的任何应用程序禁用数据访问?
我得到以下警告:
对标记为"值不能为空"属性的实体的可能"空"赋值
我的代码:
if (verifier.GetType().GetInterface(typeof(IAsyncVerifier).FullName, true) == null)
{
continue;
}
Run Code Online (Sandbox Code Playgroud)
typeof(IAsyncVerifier).FullName部分警告.怎么可以为空?你会怎么解决它?或者也许有更好的方法来确定对象是否实现了特定的接口?
我的代码看起来像这样:
public static synchronized String getPreferenceString(Context context, String key)
{
Cursor c = DatabaseHelper.getDatabase(context).query(TABLE_NAME, new String[]{ "Value" }, "Key=?", new String[]{ key }, null, null, null, null);
if (c.getCount() == 0)
{
c.close();
return "";
}
c.moveToFirst();
String retVal = c.getString(0);
c.close();
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
基本上,我从数据库表中获取特定值.它工作得很好但我想美化我的代码所以它可能看起来像这样:
public static synchronized String getPreferenceString(Context context, String key)
{
Cursor c = DatabaseHelper.getDatabase(context).query(TABLE_NAME, new String[]{ "Value" }, "Key=?", new String[]{ key }, null, null, null, null);
if (c.getCount() == 0) return "";
c.moveToFirst();
return …Run Code Online (Sandbox Code Playgroud) 我的存储过程中有以下脚本
IF EXISTS(SELECT * FROM dbo.MBLPosition WHERE PositionGKey = @i_PositionGKey) RETURN
-- DO SOME STUFF HERE
INSERT dbo.MBLPosition..
Run Code Online (Sandbox Code Playgroud)
我正在将一些数据插入表中(单个记录).首先我检查它是否已经存在,然后我做一些处理并插入记录.
处理可能需要一些时间 - 比方说2秒.有时候调用会进来,我会得到约束异常.很少见,但却发生了.我想避免这种情况,同时如果记录已存在,我不想进行此处理.构造此代码的最佳方法是什么,所以我不做额外的工作并避免异常?
这是一张大表,记录一直在进行.在进入dupes并且不花费太多处理时间的情况下过滤掉dupes的最佳方法是什么?
以下代码返回false给我,我只是无法弄清楚我做错了什么.
var localDateTimeString = "03/24/2016 21:05"; // subject.Substring(0, 16);
DateTime localDateTime;
if (!DateTime.TryParseExact(
localDateTimeString,
"MM/dd/yyyy hh:mm",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out localDateTime)) return false;
Run Code Online (Sandbox Code Playgroud)
格式固定为16个字符串,日期,月份,分钟和小时始终为2位数.年份4位数.
但是这段代码返回false,我该如何修复呢?
在我的应用程序中 - 我使用JSON进行序列化,到目前为止 - 我使用的是GSON.好吧,它有点慢,尤其是我加载对象的初始登录.
我探索了选择并找到了杰克逊.我通过循环和反序列化1000个样本对象进行了快速测试.杰克逊的速度提高了3倍-5倍.
现在,我构建了包装器,我可以在库之间切换,并开始测试,同时并排查看我从每个库得到的内容.这是我的代码:
public static <T> T fromJson(String json, Class<T> classOfT) throws Exception
{
T returnObject;
Long milliseconds = (new Date()).getTime();
returnObject = MyGsonWrapper.getMyGson().fromJson(json, classOfT);
Long gsonTime = (new Date()).getTime() - milliseconds;
milliseconds = (new Date()).getTime();
returnObject = MyJacksonWrapper.getMyJson().readValue(json, classOfT);
Long jacksonTime = (new Date()).getTime() - milliseconds;
if (gsonTime < jacksonTime)
{
Log.d(LOG_TAG, "------------- GSON Wins by " + Long.toString(jacksonTime - gsonTime) + " object: " + classOfT.getName());
}
else
{
Log.d(LOG_TAG, "------------- Jackson Wins by …Run Code Online (Sandbox Code Playgroud) 我正在做类似于这里讨论的内容: Activity中的Android BroadcastReceiver
我有无论是否运行UI的应用程序.当屏幕关闭时,它只是在背景上工作.当UI打开并且可见时 - 我想让用户知道刚刚发生的事情.
所以,我按照上面的主题中的样本和我的注册广播接收器Activity.我注册onResume并取消注册onPause
private BroadcastReceiver uiNeedToBeUpdatedReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub
Toast.makeText(BaseActivity.this, "received", Toast.LENGTH_LONG);
}
};
@Override
protected void onPause()
{
Log.d(LOG_TAG, "onPause");
super.onPause();
// TODO: Unregister broadcast receiver
unregisterReceiver(uiNeedToBeUpdatedReceiver);
}
@Override
protected void onResume()
{
Log.d(LOG_TAG, "onResume");
super.onResume();
// TODO: Register for broadcast events
IntentFilter filter = new IntentFilter();
filter.addAction("com.my.uineedtobeupdated");
registerReceiver(uiNeedToBeUpdatedReceiver, filter);
Run Code Online (Sandbox Code Playgroud)
在我的AsyncTask背景中运行我执行此操作:
// Send broadcast …Run Code Online (Sandbox Code Playgroud) 我正在学习Obj-C,这只是语法/语言问题。
考虑以下代码:
NSMutableArray *attributes = [[NSMutableArray alloc] init];
[attributes addObject:@"H:S"];
[attributes addObject:@"H:W"];
[attributes addObject:@"H:AGR"];
[attributes addObject:@"H:TPC"];
[attributes addObject:@"H:P"];
[attributes addObject:@"H:TI"];
return attributes;
Run Code Online (Sandbox Code Playgroud)
有没有更短的语法来使用预设值初始化数组?