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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.9k
Other Decks in Programming
See All in Programming
Inspired By RubyKaigi (EN)
atzzcokek
0
470
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
320
初めてのRubyKaigiはこう見えた
jellyfish700
0
380
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
12
3.1k
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
430
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
400
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
140
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
4.8k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
270
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
2.4k
JavaDoc 再入門
nagise
0
220
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
430
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
290
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Building AI with AI
inesmontani
PRO
1
1k
Paper Plane (Part 1)
katiecoart
PRO
0
8.1k
For a Future-Friendly Web
brad_frost
183
10k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
Automating Front-end Workflow
addyosmani
1370
210k
Chasing Engaging Ingredients in Design
codingconduct
0
200
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