我在其中一项活动中遇到了一个奇怪的问题.当从拍摄照片/视频回来时,onActivityResult我正在显示一个对话框,让用户为摄像机命名.一旦用户按下OK,我就会发送onNext()一个主题,该主题具有复制文件的请求文件名(并显示进度对话框).
由于某种原因map(),即使我打电话,也总是在主线程上调用执行复制的函数subscribeOn(Schedulers.io()).
@Override
protected void onActivityResult(final int requestCode, int resultCode, Intent intent) {
...
final PublishSubject<String> subject = PublishSubject.create();`
mSubscription = subject
.subscribeOn(Schedulers.io())
.map(new Func1<String, String>() {
@Override
public String call(String fileName) {
Log.I.d(TAG,"map");
return doSomeIOHeavyFuncition();
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<String>() {
@Override
public void call(final String fullPath) {
Log.d(TAG,"onNext");
doSomethingOnUI(fullPath);
subject.onCompleted();
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
...
}
}, new Action0() {
@Override
public void …Run Code Online (Sandbox Code Playgroud) 我有一个客户端 - 服务器应用程序,为了使用模拟器测试它我在虚拟机上有一个服务器,我更改了mac的主机文件(/ etc/hosts),所以我可以到达那里.
它在XCode 5中工作正常,但在XCode 6上无法访问服务器.当我试图打开NSURLConnection时,我得到了 -
错误域= kCFErrorDomainCFNetwork代码= 310"与安全Web代理服务器(HTTPS)通信时出现问题." UserInfo = 0x78b3fc50 {_kCFStreamErrorCodeKey = -2096,
NSErrorFailingURLStringKey = https: //xxx.yyy.zzz/mobile/login,NSErrorFailingURLKey = https://xxx.yyy.zzz/mobile/login,NSLocalizedDescription =与之沟通时遇到问题安全Web代理服务器(HTTPS).,_ kCFStreamErrorDomainKey = 4,NSLocalizedRecoverySuggestion =请检查您的代理设置.有关此问题的帮助,请与系统管理员联系.
当然可以通过键入https://xxx.yyy.zzz从Safari访问服务器,它可以解决ping问题,如果我打开XCode 5,它仍然有效.
我认为模拟器忽略了mac的hosts文件的更改,或者它可能使用它自己的私有主机文件.
如果我输入一些"硬编码解析"(在代码中将xxx.yyy.zzz转换为它的IP地址),则可以访问服务器.
任何人都知道如何解决这个问题?