情况:
TL; DR - 你如何实现这个?
我的方法到目前为止:
第一直觉:只匹配某些网址并为其启动.问题:AndroidManifest intent-filter中表达式的缺乏阻止了这一点(例如http://weiyang.wordpress.ncsu.edu/2013/04/11/a-limitation-in-intent-filter-of-android-application/) .
作为问题的一个子集,假设m.somewhere.com上的服务器知道任何以数字结尾的URL都会进入网站上的某个页面,并且营销人员会不断地使用seo,所以例如,
我想推出以下应用:
http://m.somewhere.com/find/abc-12345
https://m.somewhere.com/shop/xyz-45678928492
Run Code Online (Sandbox Code Playgroud)
但不是
http://m.somewhere.com/find/abc-12345-xyz
https://m.somewhere.com/about-us
Run Code Online (Sandbox Code Playgroud)
没有path,pathPrefix或pathPattern的组合将处理此问题.
stackoverflow的最佳实践(在AndroidManifest中匹配URI与<data>一样http://example.com/something)似乎是要抓住所有内容,然后在你进入onCreate()时意识到你不应该有这种情况处理了这个特殊的网址:
Android清单:
...
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="m.somewhere.com"
android:pathPattern=".*"/>
</intent-filter>
...
Run Code Online (Sandbox Code Playgroud)
活动onCreate():
Intent i = getIntent()
String action = i.getAction();
Uri uri = i.getData();
if (Intent.ACTION_VIEW.equals(action) && cantHandleUrl(uri)) {
// TODO - fallback to browser.
}
Run Code Online (Sandbox Code Playgroud)
我已经编写了类似于上面的东西,但它会导致非常糟糕的最终用户体验:
可以做些什么?
(编辑:在应用程序的WebView中显示未处理页面的站点不是一个选项).
我基本上想要相当于
... | sort -arg1 -arg2 -... | head -n $k
Run Code Online (Sandbox Code Playgroud)
但是,我的理解是排序将在整个输入上变为O(n log n).在我的情况下,我正在处理大量数据,因此运行时对我很重要 - 而且我还有一个习惯是使用排序临时文件溢出我的tmp /文件夹.
我宁愿让它用O(n log k)使用例如堆,这可能会更快,并且还将工作集内存减少到k.
是否有一些标准命令行工具的组合可以有效地执行此操作,而无需我自己编写代码?理想情况下,它将支持sort命令的完全表达排序功能.sort(至少在ubuntu上)似乎没有man-page记录的开关来将它拉下来......
更新:谢谢凯文,我的意思是<=在标题中,而不是<.
它是否正确?这是我在解决问题的尴尬时间之后所做的最好的事情:
public int candidate_answer(double f, float g) {
int test = (int)Math.floor(f / g);
if ((test + 1) * g <= f) {
test++;
}
return test;
}
Run Code Online (Sandbox Code Playgroud)
背景:
该应用程序是一个简单的游戏,我已经接管了以前的程序员的所有权.奇怪的是,他选择在成员和参数变量中大肆混合浮动和双打,所以有很多不必要的隐式和显式转换上下.
玩家坐标为双x,y(玩家被认为是一个点).有一个浮点数TILE_SIZE,世界是一些行和列的值,还有一些通用的越界处理.假设(x,y)坐标在边界内,我试图找出用户所在的图块,基于x(获取列)或y(获取行).这就像程序员101.
WLOG,起初我只是在做col = (int)(x/TILE_SIZE).但是正如我发现的那样,例如,.5/.1f <5,因此(int)(.5/.1f) == 4,错误的答案.这导致了上述if语句和问题的表述.
然后我发现,例如,(int)(-9.999999747378752E-5 / .1f) == 0这导致我先打电话Math.floor.
但现在我不确定这种方法中潜伏的其他错误,或者最好的方法是什么.
(如果用户正处于一排或另一排的尖端,并且我们不小心绕到了错误的那一行,这似乎不是什么大问题;但真正的问题是在代码中,我们看到意外的符号变化(+, - ,0).例如,一些代码假设如果用户位于(r,c)的图块上,那么它的点实际上是由该图块几何体所包含的.当它不是时,我们会得到像当只有非负数时,负距离等等,它会导致断言触发,而循环断开等等.)
我有一个DialogFragment,通常以屏幕为中心,我试图移开屏幕键盘,如果有任何应该出现,因为它不是一个良好的用户体验键盘覆盖部分窗口,当完全未使用的屏幕房地产更远.
假设我已经解决了检测键盘出现或消失的问题,例如如何检查Android中软件键盘的可见性?.
目前我通过做这样的事情来移开窗口:
...
final WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.gravity = Gravity.TOP;
params.verticalMargin = .1f; //or whatever
dialog.getWindow().setAttributes(params);
...
Run Code Online (Sandbox Code Playgroud)
这很好用,但是窗口突然变成了一个位置,这不是一个愉快的用户体验.有问题的窗口有一个成功的进入和退出动画 - 这些甚至可以在窗口布局更改后正常工作.如何在WindowManager.LayoutParams更改之间进一步设置窗口动画?
(我希望在可能的情况下继续使用http://developer.android.com/reference/android/view/Window.html中的} {{}的布局,而不是强迫DialogFragment进入我的活动的布局并从那里制作动画.
dependency尽管在vs.上写了这么多devDependency,我仍然很困惑如何继续处理“构建时间”步骤所需的模块,然后npm start才能工作。
在我的项目中,必须gulp build先调用npm start才能工作。构建步骤中的活动示例包括转译和捆绑。官方文档明确表示不要在依赖项部分中包含转译器,而是在 devDependencies 部分中包含。其他最佳实践建议应将自动生成的代码排除在 git/模块之外。但是,将这些放在一起,我不明白该怎么做:如果没有转译和构建,有人无法下载和运行我的模块,并且如果没有转译器/捆绑器/等,这些步骤就无法完成。在依赖项部分。(否则“运行”就被认为是“开发”?)
如何针对这种情况正确构建节点项目?
问这样我可以自己回答这个问题,为此浪费了一天,并希望为其他人省去麻烦。
设置:
vcpkg替代的标准构建都会发生。如果您尝试手动构建https://github.com/aws/aws-sdk-cpp 中提到的“第 3 方依赖项”,也会发生这种情况。你尝试这样的事情:
git clone https://github.com/aws/aws-sdk-cpp.git
cd aws-sdk-cpp
mkdir build
cd build
cmake ..
Run Code Online (Sandbox Code Playgroud)
您收到来自 cmake 结尾的投诉:
[...]
Performing configure step for 'AwsChecksums'
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.17763.
-- The C compiler identification is MSVC 19.27.29112.0
-- Detecting …Run Code Online (Sandbox Code Playgroud)