Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wd1105040417
retrofit
提交
bbd8dd0c
R
retrofit
项目概览
wd1105040417
/
retrofit
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
retrofit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bbd8dd0c
编写于
11月 19, 2016
作者:
J
Jake Wharton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add sample showing how to add an observeOn to Observable.
上级
b5507b8c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
82 addition
and
0 deletion
+82
-0
samples/pom.xml
samples/pom.xml
+5
-0
samples/src/main/java/com/example/retrofit/RxJavaObserveOnMainThread.java
.../java/com/example/retrofit/RxJavaObserveOnMainThread.java
+77
-0
未找到文件。
samples/pom.xml
浏览文件 @
bbd8dd0c
...
...
@@ -34,6 +34,11 @@
<artifactId>
converter-simplexml
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
adapter-rxjava
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.squareup.okhttp3
</groupId>
<artifactId>
mockwebserver
</artifactId>
...
...
samples/src/main/java/com/example/retrofit/RxJavaObserveOnMainThread.java
0 → 100644
浏览文件 @
bbd8dd0c
/*
* Copyright (C) 2016 Square, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.example.retrofit
;
import
java.lang.annotation.Annotation
;
import
java.lang.reflect.Type
;
import
retrofit2.Call
;
import
retrofit2.CallAdapter
;
import
retrofit2.Retrofit
;
import
retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
;
import
rx.Observable
;
import
rx.Scheduler
;
import
rx.schedulers.Schedulers
;
import
static
rx
.
schedulers
.
Schedulers
.
io
;
public
final
class
RxJavaObserveOnMainThread
{
public
static
void
main
(
String
...
args
)
{
Scheduler
observeOn
=
Schedulers
.
computation
();
// Or use mainThread() for Android.
Retrofit
retrofit
=
new
Retrofit
.
Builder
()
.
baseUrl
(
"http://example.com"
)
.
addCallAdapterFactory
(
new
ObserveOnMainCallAdapterFactory
(
observeOn
))
.
addCallAdapterFactory
(
RxJavaCallAdapterFactory
.
createWithScheduler
(
io
()))
.
build
();
// Services created with this instance that use Observable will execute on the 'io' scheduler
// and notify their observer on the 'computation' scheduler.
}
static
final
class
ObserveOnMainCallAdapterFactory
extends
CallAdapter
.
Factory
{
final
Scheduler
scheduler
;
ObserveOnMainCallAdapterFactory
(
Scheduler
scheduler
)
{
this
.
scheduler
=
scheduler
;
}
@Override
public
CallAdapter
<?,
?>
get
(
Type
returnType
,
Annotation
[]
annotations
,
Retrofit
retrofit
)
{
if
(
getRawType
(
returnType
)
!=
Observable
.
class
)
{
return
null
;
// Ignore non-Observable types.
}
// Look up the next call adapter which would otherwise be used if this one was not present.
//noinspection unchecked returnType checked above to be Observable.
final
CallAdapter
<
Object
,
Observable
<?>>
delegate
=
(
CallAdapter
<
Object
,
Observable
<?>>)
retrofit
.
nextCallAdapter
(
this
,
returnType
,
annotations
);
return
new
CallAdapter
<
Object
,
Object
>()
{
@Override
public
Object
adapt
(
Call
<
Object
>
call
)
{
// Delegate to get the normal Observable...
Observable
<?>
o
=
delegate
.
adapt
(
call
);
// ...and change it to send notifications to the observer on the specified scheduler.
return
o
.
observeOn
(
scheduler
);
}
@Override
public
Type
responseType
()
{
return
delegate
.
responseType
();
}
};
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录