[解決済み] onStartCommandで渡されたIntentがNULLになる理由
疑問点
に渡されるIntentは、他の理由もあるのでしょうか?
onStartCommand(Intent, int, int)
に渡される Intent が NULL になる理由は他にありますか?
START_STICKY
?
また、システムによってサービスが再起動されたときに
Intent.getAction()
メソッドが NULL を返す...ことがあります。インテントが NULL ではなく、単に
getAction()
私が尋ねたのは ここで にも問い合わせましたが、まだ回答がありません。
アップデイト
: Mark Murphyとチャットした後、彼は私が戻ることを提案しました。
START_REDELIVER_INTENT
の中に
onStartCommand()
の代わりに、私のサービスでは
START_STICKY
を使用することで、再起動後にインテント全体が送信されるようになります。
サービスが何かをしようとしているときに、その途中でサービスが再起動されたら...その何かをし始めたと認識されるのだろうかと心配だったので、最初はこれを実行しませんでした。これは私が責任を持たなければならないロジックだと思います :)
どのように解決するのですか?
受信フラグについての議論がないのが不思議です。下記でログで監視してみます。
if (null == intent || null == intent.getAction ()) {
String source = null == intent ? "intent" : "action";
Log.e (TAG, source + " was null, flags=" + flags + " bits=" + Integer.toBinaryString (flags));
return START_STICKY;
}
更新しました。フラグが0だったので、そこには何もアクションがありませんでした。私は、機能を損なうことなく、そこにヌル チェックを残しました。
編集: OK、よりによって START_STICKY のドキュメントでそれを見つけました! "サービスに配信される保留中の開始コマンドがない場合、それは null インテント オブジェクトで呼び出されるので、これをチェックするように注意する必要があります."。
http://developer.android.com/reference/android/app/Service.html
関連
-
[解決済み】Android "ビュー階層を作成した元のスレッドだけが、そのビューに触れることができる"
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] HttpPostによる画像送信
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] edittextのテキストがメールアドレスかどうかを確認するには?
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
-
[解決済み] 文字列リソースにHTML?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
-
[解決済み] WhatsAppでメッセージを送信する