Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android 8.0のPush受信時のサービス起動について
Search
hideoohashi
November 15, 2018
Programming
1.6k
2
Share
Android 8.0のPush受信時のサービス起動について
hideoohashi
November 15, 2018
More Decks by hideoohashi
See All by hideoohashi
SmartNews 5.0 ちょっと苦労した話 / shibuya.apk #19
hideoohashi
5
4.8k
Other Decks in Programming
See All in Programming
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
770
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
190
Firefoxにコントリビューションして得られた学び
ken7253
2
160
Road to RubyKaigi: Play Hard(ware)
makicamel
1
560
Programming with a DJ Controller — not vibe coding
m_seki
3
800
空間オーディオの活用
objectiveaudio
0
140
cloudnative conference 2026 flyle
azihsoyn
0
150
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
330
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
560
Kingdom of the Machine
yui_knk
2
1.5k
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
28
19k
PHPでバイナリをパースして理解するASN.1
muno92
PRO
0
430
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
530
Prompt Engineering for Job Search
mfonobong
0
300
Deep Space Network (abreviated)
tonyrice
0
130
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
Facilitating Awesome Meetings
lara
57
6.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
A designer walks into a library…
pauljervisheath
211
24k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
780
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Transcript
Android 8.0のPush受信時の サービス起動について 2018/11/15 - potatotips #56 Hideo Ohashi 1
About Me • Androidエンジニア8年間やってます • 現在はスマートニュース株式会社でAndroidアプ リ開発全般に関わっています 2
Today’s topic • Android 8.0対応時に発生した、Push受信時の バックグラウンドサービス起動の問題と、そこか ら学んだことの共有させていただきたいと思いま す 3
バックグラウンドサービスの制限 • Android 8.0からバックグラウンドサービスの実 行に制限がつきました ◦ https://developer.android.com/about/versions/oreo/background • ただし特定の状況のときは実行制限はなくなり、 優先度高のPush受信もそのうちのひとつです
4
状況 • SmartNewsではPushを受けた後に処理を Serviceに委譲し、別途画像を取得して Notificationを出していました • Android8.0でもそのままで動作するはずが、 startService()の呼び出しで IllegalStateExceptionが発生していました 5
なぜだろうか? 6
原因(たぶん) • 試しに優先度高のPushを受けてから60秒ほど 経った後にstartService()を呼び出したら IllegalStateExceptionが発生しました • onReceive()では基本的にstartService()を呼び 出しているだけなので、Pushを受けてからアプリ のonReceive()が呼ばれるまでの、アプリ側から 手が出せないところで時間がかかってしまってい
る可能性が高い 7
どう解決したか • Serviceを使っていた理由は主に画像ダウン ロードだったので、startService()に失敗した場 合は画像なしでNotificationを出すことで解決さ せました ◦ 多少の情報は落ちてもリアルタイムに表示することを優 先させました 8
まとめ • 何かPushを受けてバックグラウンドサービスを 動かしたいとき、優先度高のPushでも startService()が失敗する場合があることを考え て設計・実装したほうがよさそう 9
ご静聴ありがとうございました 10