Broadcastの利用を考えてみる
LocalBroadcastManager に関して
- 正直使えません・・。
にお話が載っていたのですが・・・(使えそうな感じの記事で
外部からのメッセージのレシーバー処理が動かないんだよね。。。

現場で使える〔逆引き+実践〕 Androidプログラミングテクニック
- 作者: 日本システム開発株式会社,石原正樹,松尾源,磯村禎孝,森靖晃,奥谷修治
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/19
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 24回
- この商品を含むブログ (7件) を見る
自分メモ)
LocalBroadcastManager 自体は HeadsetStateReceiverみたいなReceiver限定の利用想定で 1Activity運用の想定なのかな。。考えてみたらstartActivityってそういえば無いからその部分は微妙なのかもね。。
LocalBroadcastManager のコード自体には android:enabled="false" android:process=":remote" 辺の想定コードは無さそうだけどこれは Receiver 辺りのコードに関連するのかな?
LocalBroadcastManager うーん。これシステムのメッセージとかFilter設定しても全く受信できないのね。。。 Intent.ACTION_HEADSET_PLUG とか・・。カスタムメッセージをBroadcastに送るためだけのものなのか。本当にこれ使えん><
kojiokbさんのつぶやき
読んでる。 IntentServiceを使って非同期処理を行う - TechBooster URL
@kojiokb URL とどっちが高速に動くんでしょうね。。(
2012-10-27 19:37:16 via YoruFukurou to @kojiokb
@kimukou2628 情報ありがとうございます。Local Broadcast知りませんでした。IntentServiceも先ほど知ったんですが… どちらもまだ使い所がピンと来てません。
@kojiokb Local Broadcast の方はv4専用クラスですね(普通のintent投げるより高速 5ms/普通は 10msぐらいかかるらしい) あとはIntentメッセージ内容もログに出ないっぽい?みたいな記述もどこかでみたような・・
2012-10-27 20:24:34 via YoruFukurou to @kojiokb
@kimukou2628 LocalBroadcastManager.java読みました。sendBroadcast()からonReceive()まで、LocalBroadcastManager内に閉じてますね。まぁ、当然ですが…
Support Libraryのソースアタッチしたいけど、non modifiableとなってるな。 URL
2012-10-27 21:57:15 via web
@kojiokb @kojiokb つ URL ソースフォルダ指定でしか上手く参照できなかった感じですが
2012-10-27 22:18:09 via YoruFukurou to @kojiokb
@kimukou2628 ありがとうございます。リンク先の方法でいけました。
android:process=":remote"
気持ち早くなったような・・・。
これを付ける前は、NWが繋がらないときANRが出ていたので*1
android:enabled="false"
onResumeで初めて有効にするという話。
通常だとonCreateの段階とかで動いてしまうようなので少しでも負荷を減らすというお話らしいですね
<onCreateで時間かかりすぎるとやはりANRがでるようなので・・・
とりあえず試したコード)
//は動かなくてコメントしたコード
追記)
android:process=":remote" 記述のReciver、アプリが中断終了だと残っちゃうことがあるな。。。onDestroy経由でプロセスがうまく終了しないとかいうのはココらへんの話もある気がする
追記2)
困った(>_<)。receiverをremote設定にするとアプリ終了してもアプリが残ってる挙動をすることがあるらしい。しかもつい最近からだとか。 一応unregistはしてるけどonDestroyでも呼んだ方がいいかな(今はonstopとかで呼んでる
receiverをremote の設定の解決編:結論を言うとonDestroyでも unregisterReceiver をするという対処でOKだったよう。remoteで起動するとアプリ終了時に破棄してくれないんか‥‥‥これ強制終了とかしたときどうするんだろう?
*1:地下鉄とかで駅間で3G繋がらないとき立ち上がらない