小编Yos*_*bab的帖子

即使在另一个线程上调用了subscribeOn(),Observable也会在主线程上运行

我在其中一项活动中遇到了一个奇怪的问题.当从拍摄照片/视频回来时,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)

java android rx-java rx-android

19
推荐指数
1
解决办法
1万
查看次数

XCode 6 Simulator忽略主机文件更改

我有一个客户端 - 服务器应用程序,为了使用模拟器测试它我在虚拟机上有一个服务器,我更改了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地址),则可以访问服务器.

任何人都知道如何解决这个问题?

ios ios-simulator xcode6

9
推荐指数
2
解决办法
6122
查看次数

标签 统计

android ×1

ios ×1

ios-simulator ×1

java ×1

rx-android ×1

rx-java ×1

xcode6 ×1