Skip to content

Commit 66f8ede

Browse files
committed
add Observable just examples
1 parent 0875aac commit 66f8ede

3 files changed

Lines changed: 265 additions & 10 deletions

File tree

app/src/main/java/com/demo/maat/hello_rxjava/SchedulerFragment.java

Lines changed: 227 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,18 @@ public class SchedulerFragment extends Fragment {
3131
String[] data = {"1", "2", "3"};
3232
@BindView(R.id.btn_no_map)
3333
Button mBtnNoMap;
34+
@BindView(R.id.btn_just)
35+
Button mBtnJust;
36+
@BindView(R.id.btn_just_one)
37+
Button mBtnJustone;
38+
@BindView(R.id.btn_just_two)
39+
Button mBtnJusttwo;
40+
@BindView(R.id.btn_just_three)
41+
Button mBtnJustthree;
42+
@BindView(R.id.btn_just_four)
43+
Button mBtnJustfour;
44+
@BindView(R.id.btn_just_five)
45+
Button mBtnJustfive;
3446
@BindView(R.id.btn_one_map)
3547
Button mBtnOneMap;
3648
@BindView(R.id.btn_two_map)
@@ -45,14 +57,15 @@ public class SchedulerFragment extends Fragment {
4557
private Subscription oneMapSubscription;
4658
private Subscription twoMapSubscription;
4759
private Subscription longOpeSubscription;
48-
private CompositeSubscription mCompositeSubscription;;
60+
private CompositeSubscription mCompositeSubscription;
61+
;
4962

5063
@Override
5164
public View onCreateView(LayoutInflater inflater, ViewGroup container,
5265
Bundle savedInstanceState) {
5366
View view = inflater.inflate(R.layout.scheduler_fragment, container, false);
5467
ButterKnife.bind(this, view);
55-
mCompositeSubscription=new CompositeSubscription();
68+
mCompositeSubscription = new CompositeSubscription();
5669
return view;
5770
}
5871

@@ -68,9 +81,28 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
6881
}
6982

7083

71-
@OnClick({R.id.btn_no_map, R.id.btn_one_map, R.id.btn_two_map, R.id.btn_long_operation})
84+
@OnClick({R.id.btn_just, R.id.btn_just_one, R.id.btn_just_two,
85+
R.id.btn_just_three,R.id.btn_just_four, R.id.btn_just_five, R.id.btn_no_map, R.id.btn_one_map, R.id.btn_two_map, R.id.btn_long_operation})
7286
public void onClick(View view) {
7387
switch (view.getId()) {
88+
case R.id.btn_just:
89+
doJust();
90+
break;
91+
case R.id.btn_just_one:
92+
doJustOne();
93+
break;
94+
case R.id.btn_just_two:
95+
doJustTwo();
96+
break;
97+
case R.id.btn_just_three:
98+
doJustThree();
99+
break;
100+
case R.id.btn_just_four:
101+
doJustFour();
102+
break;
103+
case R.id.btn_just_five:
104+
doJustFive();
105+
break;
74106
case R.id.btn_no_map:
75107
doBaseOperation();
76108
break;
@@ -87,6 +119,192 @@ public void onClick(View view) {
87119
}
88120

89121

122+
private void doJust() {
123+
Observable.just(1, 2, 3)
124+
.subscribe(new Subscriber<Integer>() {
125+
@Override
126+
public void onCompleted() {
127+
printLog("Completed");
128+
}
129+
130+
@Override
131+
public void onError(Throwable e) {
132+
printLog("onError");
133+
134+
}
135+
136+
@Override
137+
public void onNext(Integer integer) {
138+
printLog("Next " + integer + " ");
139+
}
140+
});
141+
}
142+
143+
144+
private void doJustOne() {
145+
Observable.just(1, 2, 3)
146+
.subscribeOn(Schedulers.io())
147+
.subscribe(new Subscriber<Integer>() {
148+
@Override
149+
public void onCompleted() {
150+
printLog("Completed");
151+
}
152+
153+
@Override
154+
public void onError(Throwable e) {
155+
printLog("onError");
156+
157+
}
158+
159+
@Override
160+
public void onNext(Integer integer) {
161+
printLog("Next " + integer + " ");
162+
}
163+
});
164+
}
165+
166+
private void doJustTwo() {
167+
Observable.just(1, 2, 3)
168+
.subscribeOn(Schedulers.io())
169+
.observeOn(AndroidSchedulers.mainThread())
170+
.subscribe(new Subscriber<Integer>() {
171+
@Override
172+
public void onCompleted() {
173+
printLog("Completed");
174+
}
175+
176+
@Override
177+
public void onError(Throwable e) {
178+
printLog("onError");
179+
180+
}
181+
182+
@Override
183+
public void onNext(Integer integer) {
184+
printLog("Next " + integer + " ");
185+
}
186+
});
187+
}
188+
189+
private void doJustThree() {
190+
Observable.just(1, 2, 3)
191+
.subscribeOn(Schedulers.io())
192+
.map(new Func1<Integer, String>() {
193+
@Override
194+
public String call(Integer integer) {
195+
printLog("map "+integer+"a");
196+
return integer+"a";
197+
}
198+
})
199+
.subscribe(new Subscriber<String>() {
200+
@Override
201+
public void onCompleted() {
202+
printLog("Completed");
203+
}
204+
205+
@Override
206+
public void onError(Throwable e) {
207+
printLog("onError");
208+
209+
}
210+
211+
@Override
212+
public void onNext(String s) {
213+
printLog("Next " +s);
214+
215+
}
216+
217+
});
218+
}
219+
private void doJustFour() {
220+
Observable.just(1, 2, 3)
221+
.subscribeOn(Schedulers.io())
222+
.map(new Func1<Integer, String>() {
223+
@Override
224+
public String call(Integer integer) {
225+
printLog("map1 "+integer+"a");
226+
return integer+"a";
227+
}
228+
})
229+
// 试一试把上面的subscribeOn注释掉,使用这个,效果是不一样的
230+
// .subscribeOn(AndroidSchedulers.mainThread())
231+
.observeOn(AndroidSchedulers.mainThread())
232+
.map(new Func1<String, String>() {
233+
@Override
234+
public String call(String s) {
235+
printLog("map2 "+s+"b ");
236+
return s+"b";
237+
}
238+
})
239+
.subscribe(new Subscriber<String>() {
240+
@Override
241+
public void onCompleted() {
242+
printLog("Completed");
243+
}
244+
245+
@Override
246+
public void onError(Throwable e) {
247+
printLog("onError");
248+
249+
}
250+
251+
@Override
252+
public void onNext(String s) {
253+
printLog("Next " +s);
254+
255+
}
256+
257+
});
258+
}
259+
private void doJustFive() {
260+
Observable.just(1, 2, 3)
261+
.subscribeOn(Schedulers.io())
262+
.map(new Func1<Integer, String>() {
263+
@Override
264+
public String call(Integer integer) {
265+
printLog("map1 "+integer+"a");
266+
return integer+"a";
267+
}
268+
})
269+
.observeOn(AndroidSchedulers.mainThread())
270+
.map(new Func1<String, String>() {
271+
@Override
272+
public String call(String s) {
273+
printLog("map2 "+s+"b ");
274+
return s+"b";
275+
}
276+
})
277+
.observeOn(Schedulers.io())
278+
.map(new Func1<String, String>() {
279+
@Override
280+
public String call(String s) {
281+
printLog("map3 "+s+"c ");
282+
return s+"c";
283+
}
284+
})
285+
.observeOn(AndroidSchedulers.mainThread())
286+
.subscribe(new Subscriber<String>() {
287+
@Override
288+
public void onCompleted() {
289+
printLog("Completed");
290+
}
291+
292+
@Override
293+
public void onError(Throwable e) {
294+
printLog("onError");
295+
296+
}
297+
298+
@Override
299+
public void onNext(String s) {
300+
printLog("Next " +s);
301+
302+
}
303+
304+
});
305+
}
306+
307+
90308
/**
91309
* Subscriber的基本使用,没有线程切换,没有过滤等操作
92310
* 你自己可以试一试
@@ -156,7 +374,7 @@ public void call(Subscriber<? super String> subscriber) {
156374
public String call(String s) {
157375
String result = s + "a";
158376
printLog(result);
159-
return result;
377+
return result;
160378
}
161379
}).subscribe(new Subscriber<String>() {
162380
@Override
@@ -182,7 +400,6 @@ public void onNext(String s) {
182400
}
183401

184402

185-
186403
/**
187404
* 模拟阻操作,如网络请求,文件读取,再加上scheduler,切换线程。
188405
*/
@@ -253,17 +470,17 @@ public void call(Subscriber<? super String> subscriber) {
253470
.map(new Func1<String, String>() {
254471
@Override
255472
public String call(String s) {
256-
String result=s+"a";
257-
printLog("Map1 "+result);
473+
String result = s + "a";
474+
printLog("Map1 " + result);
258475
return result;
259476
}
260477
})
261478
.observeOn(AndroidSchedulers.mainThread())
262479
.map(new Func1<String, String>() {
263480
@Override
264481
public String call(String s) {
265-
String result=s+"b";
266-
printLog("Map2 "+result);
482+
String result = s + "b";
483+
printLog("Map2 " + result);
267484
return result;
268485
}
269486
})
@@ -290,6 +507,7 @@ public void onNext(String s) {
290507
});
291508
mCompositeSubscription.add(twoMapSubscription);
292509
}
510+
293511
private void dosomethingBlockThread() {
294512
printLog("blocking....");
295513
try {

app/src/main/res/layout/activity_main.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,10 @@
3535
android:layout_height="wrap_content"
3636
android:text="Rxjava Retrofit"/>
3737

38+
<Button
39+
android:id="@+id/btn_rxandroid"
40+
android:layout_width="match_parent"
41+
android:layout_height="wrap_content"
42+
android:text="RxAndroid"/>
3843

3944
</LinearLayout>

app/src/main/res/layout/scheduler_fragment.xml

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,45 @@
3232
android:layout_height="wrap_content"
3333
android:text="source data:1,2,3"/>
3434

35+
36+
<Button
37+
android:id="@+id/btn_just"
38+
android:layout_width="match_parent"
39+
android:layout_height="wrap_content"
40+
android:text="just"/>
41+
42+
43+
<Button
44+
android:id="@+id/btn_just_one"
45+
android:layout_width="match_parent"
46+
android:layout_height="wrap_content"
47+
android:text="just-1"/>
48+
<Button
49+
android:id="@+id/btn_just_two"
50+
android:layout_width="match_parent"
51+
android:layout_height="wrap_content"
52+
android:text="just-2"/>
53+
<Button
54+
android:id="@+id/btn_just_three"
55+
android:layout_width="match_parent"
56+
android:layout_height="wrap_content"
57+
android:text="just-3"/>
58+
<Button
59+
android:id="@+id/btn_just_four"
60+
android:layout_width="match_parent"
61+
android:layout_height="wrap_content"
62+
android:text="just-4"/>
63+
<Button
64+
android:id="@+id/btn_just_five"
65+
android:layout_width="match_parent"
66+
android:layout_height="wrap_content"
67+
android:text="just-5"/>
3568
<TextView
3669
android:layout_width="match_parent"
3770
android:layout_height="wrap_content"
3871
android:gravity="center"
3972
android:text="RxJava basic operation"
4073
android:textColor="#000000"/>
41-
4274
<Button
4375
android:id="@+id/btn_no_map"
4476
android:layout_width="match_parent"

0 commit comments

Comments
 (0)