--> -->
Google PlayのAppStateは、サンプルを見てもActivityから使うケースしか無く、ぐぐってもサービスから使っているものが見つかりませんでした。
恐らく、あまりに自明なのでわざわざ書く人が居ないのかも・・・。
まず、AppStateを使うクラスをサンプル通りに適当に書きます。
ただし、Activityは継承しません。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| - | - ! | | | | | | | - | | | | | - - | ! | | | | ! | - - ! - | | | ! ! | - - ! - | | ! ! | | - - - ! - | - - ! ! - | | ! - ! ! | | - | - ! ! ! |
|
一つずつ解説していきます。
1行目で必要なサービスをimplementします。Activityは継承しません。
13行目〜でコンストラクタを置き、その中でServiceからcontextを受け取って、Builderに渡しています。
29,39行目〜で、onStart, onStopの代わりに独自の処理を書いています。これはService側から明示的に呼びます。
49行目では、Serviceに取得した値を返すためにイベント通知しています。ListenerはService側で仕掛けます。
次にService側を見てみます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| - | | | | | | - | | - ! | - ! | - ! | ! | - - ! - ! ! | - - | ! | - - | ! | | - - ! | ! |
|
8行目〜のonCreate内で、AppStateControlをnewしてcontextを渡します。
15行目で結果を受け取るためのListenerを仕掛けています。
あとは・・・まあ、コードの通りですね(笑)。
ついでに、Interface部分も乗せておきます。
MainActivityからサービスを起こす方法は、別途文献にあたってみてください。
http://www.atmarkit.co.jp/ait/articles/0906/18/news102.html
| いや、あの、そのサービスではありません。。。 |