Android内容提供商的文档描述了使用ContentResolver,从中获取getContentResolver(),访问内容.
然而,还有一个ContentProviderClient,可以从中获得getContentResolver().acquireContentProviderClient(authority).它似乎提供了或多或少相同的方法,ContentResolver用于从提供者访问内容.
我什么时候应该使用ContentProviderClient而不是ContentResolver直接使用?有什么好处?
多年来,我一直使用OpenID委托登录Stack Overflow(以及其他网站),使用我自己的URI作为OpenID,但让Google处理身份验证.我使用Stack Overflow问题中描述的技术; 所以,我的自定义OpenID http://tupelo-schneck.org/robert解析为包含以下内容的HTML页面:
<link href="https://www.google.com/accounts/o8/ud" rel="openid2.provider" />
<link href="https://www.google.com/profiles/schneck" rel="openid2.local_id" />
Run Code Online (Sandbox Code Playgroud)
然而,现在,我已登录Stack Overflow并让谷歌告诉我" 重要通知: 2015年4月20日,Google帐户的OpenID2将消失.了解详情." 此页面解释了Google已弃用OpenID 2.0,开发人员应将其应用迁移到OpenID Connect.
我是否可以继续使用自定义URI进行OpenID登录,但是委托给Google的OpenID Connect提供商进行身份验证?怎么样?
Server server = new Server(0);
(..)
server.start();
// this returns _zero_ ?!?!
int listeningPort = server.getConnectors()[0].getPort();
Run Code Online (Sandbox Code Playgroud)
我正在使用嵌入式Jetty 7 API.将零传递给Server(int)构造函数会导致Jetty自动分配可用端口,如何才能发现分配了哪个端口?
我已阅读文档,但无法找到此信息.
谢谢..
我在Khan Academy的计算机程序设计课程中开发了一些程序,我想在可汗学院之外运行.怎么办?
我的Android应用程序中有一个自定义内容提供程序,运行得相当好.我希望其他应用也可以访问我的内容提供商.我想要一些干净的方式来传达异常和错误,但据我所知,Android内容提供程序框架没有提供任何方法来跨进程传播异常.
我应该如何向调用者指明异常状态?我是否必须以某种方式将其编码为我的返回数据并依赖客户端进行检查?还有其他选择吗?如果将编码转换为普通的返回数据,那么最好的方法是什么?(我可以看到一些用于替代的Cursor一个返回query调用,但对于Uri返回的insert,或者int由归国update或delete?)
error-handling android exception-handling android-contentprovider
CloseableHttpClient在Apache HttpClient 4.3中构建一个时,我可以使用
SocketConfig.custom().setSoTimeout(soTimeout).build()
Run Code Online (Sandbox Code Playgroud)
并将其发送到setDefaultSocketConfig()我的连接管理器的方法.
我也可以用
RequestConfig.custom().setSocketTimeout(socketTimeout).build()
Run Code Online (Sandbox Code Playgroud)
并将其发送到setDefaultRequestConfig()我的http客户端构建器的方法.
这些会产生相同的终结效果或不同的终结效果吗?
似乎Files.newBufferedReader()对UTF-8比对天真的替代品更严格.
如果我创建一个单字节128的文件---所以,不是一个有效的UTF-8字符---如果我在结果上构造一个BufferedReaderon ,但是抛出异常会很高兴.InputStreamReaderFiles.newInputStream()Files.newBufferedReader()
这段代码
try (
InputStream in = Files.newInputStream(path);
Reader isReader = new InputStreamReader(in, "UTF-8");
Reader reader = new BufferedReader(isReader);
) {
System.out.println((char) reader.read());
}
try (
Reader reader = Files.newBufferedReader(path);
) {
System.out.println((char) reader.read());
}
Run Code Online (Sandbox Code Playgroud)
有这个结果:
?
Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.read(BufferedReader.java:182)
at TestUtf8.main(TestUtf8.java:28)
Run Code Online (Sandbox Code Playgroud)
这记录了吗?是否有可能获得宽松的行为Files.newBufferedReader()?
(请注意,此问题中描述的行为只是因为我们正在做的其他看似无关的事情而出现.请参阅接受的答案.)
我们有一个带有a GridView和a的SlidingDrawer内部的Android活动RelativeLayout.此活动响应轨迹球(或光标键)的方式相当奇怪.焦点将在GridView中的项目之间移动,但每当光标在GridView的"out"方向移动时.(例如,当在顶部时向上,当已经在最左边的项目时离开)滑动抽屉打开或关闭.值得注意的是,焦点停留在GridView中的相同项目上 - 它不会移动到滑动抽屉.
使用轨迹球这是特别可怕的,因为将轨迹球旋转到您的真实目的地将导致滑动抽屉反复打开和关闭.
我们已经确定我们可以完全通过覆盖来关闭轨迹球onTrackballEvent().我们希望轨迹球和光标在GridView上正常工作,但不会导致滑动抽屉打开或关闭.原则上我们也喜欢轨迹球在打开时专注于滑动抽屉的各种内容.
怎么样?
我有一个Web应用程序,用户向Lucene索引提交查询.查询由Lucene解析
QueryParser.我学到了QueryParser非线程安全的困难方法.
是否更好地使用单个QueryParser实例,并同步调用其parse()方法?或者为每个查询构造一个新实例是否更好?(或者我可以通过一个QueryParsers 池更好地服务?)
我知道,一般来说,这样的问题取决于具体情况并需要剖析,但也许有人可以肯定地说" QueryParser建造"非常便宜/昂贵"?
java ×5
android ×3
file ×1
html ×1
http ×1
https ×1
java-8 ×1
javascript ×1
jetty ×1
keystore ×1
khan-academy ×1
lucene ×1
nio2 ×1
openid ×1
query-parser ×1
query-string ×1
ssl ×1
utf-8 ×1