Now Loading. Please Wait ...                                      Twitter @yokmama  画面のないアプリ①  夜子まま塾 講義10(BroadcastRecieve...
自己紹介             氏名   :寺園聖文(てらぞの まさふみ)             肩書   :株式会社Re:Kayo-System 代表取締役社長             活動拠点 :神戸近郊∼日本→海外行きたい      ...
画面のないアプリ                        Activityは画面ありきのアプリです。                        しかし、アプリによっては画面を必要                            ...
センサーアプリ                                    傾きセンサー                        センサーアプリ      GPS                                 ...
バックグラウンドで動作                      するアプリ              ダウンローダー                        インターネット等からファイル等をバックグ                   ...
画面のないアプリ                        • BroadcastReciever                          (ブロードキャストレシーバー)                        • Serv...
BroadcastReciver                  BroadcastRecieverはIntentを受け取る、                       受け取り専用のクラスです。                  あまり時...
BroadcastReciverの働き                                BroadcastReciverを継承                                       したクラス        ...
動的に設定が可能          これもBroadcastRecieverの特徴なのですが、             IntentFilterを動的に生成できます。                 Intent registerReceive...
呼び出し方法                  BroadcastRecieverは誰かから呼ばれない限り動                                 作しません。                   もしプログラムから直...
BroadcastRecieverの                              注意点            BroadcastRecieverには処理時間に制約があります。               具体的にいうとBroad...
実装例         AndroidManifest.xmlよりIntent-Filter          <application              android:icon="@drawable/ic_launcher"    ...
システムで定義された                         BroadcastAction                        名前                                      説明      ...
サンプルアプリ                        ここで紹介したプログラムは次の                        URLからダウンロードできます。                              ykmjuk...
作ってみよう                         電源がはいったときに自動で起動す                            るアプリを作ってみよう                        ヒント         ...
Serviceは?                  続きは夜子まま塾オンライン(無料)にて                        毎週水曜日夜10:30∼11:00                         (都合によりない場合...
Upcoming SlideShare
Loading in …5
×

夜子まま塾講義12(broadcast reciever)

1,522 views
1,429 views

Published on

画面の内アプリの解説その1、BroadcastRecieverの解説です。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,522
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

夜子まま塾講義12(broadcast reciever)

  1. 1. Now Loading. Please Wait ... Twitter @yokmama 画面のないアプリ① 夜子まま塾 講義10(BroadcastRecieverの解説) Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  2. 2. 自己紹介 氏名   :寺園聖文(てらぞの まさふみ) 肩書   :株式会社Re:Kayo-System 代表取締役社長 活動拠点 :神戸近郊∼日本→海外行きたい 著書   :「10日でおぼえるAndroidアプリ開発入門教室」著(翔泳社)       「HTML5によるAndroidアプリ開発入門」監修(日経BP) アプリ  :「JUST PLAYER」「Skip Memo」「ふりがなオートマチック」等 好きなもの:アニメ、決して萌えじゃない、見てるけど、あくまで研究の一環 嫌いなもの:とくになし 最近のテーマ:電子工作、運動すること、英語 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  3. 3. 画面のないアプリ Activityは画面ありきのアプリです。 しかし、アプリによっては画面を必要 としないアプリもあります。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  4. 4. センサーアプリ 傾きセンサー センサーアプリ GPS 電話 データ保存 メール送信 端末の状態 設定変更 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  5. 5. バックグラウンドで動作 するアプリ ダウンローダー インターネット等からファイル等をバックグ ラウンドでダウンロードするアプリ 定期チェック サーバーの情報を定期的にチェックし、変更が ある場合に処理をするアプリ 音楽プレイヤー 他のアプリを使っている最中にも常に音楽を鳴ら し続ける Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  6. 6. 画面のないアプリ • BroadcastReciever (ブロードキャストレシーバー) • Service (サービス) この2つを使い分けて作ります。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  7. 7. BroadcastReciver BroadcastRecieverはIntentを受け取る、 受け取り専用のクラスです。 あまり時間のかかる処理をするべきではあ りませんので、その場合は次に紹介する Serviceと連携する必要があります。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  8. 8. BroadcastReciverの働き BroadcastReciverを継承 したクラス Intent-Filterによって受信できる Intentを設定する Intent BroadcastReciverを継承 したクラス2 BroadcastReciverを継承 したクラス3 BroadcastReciverを継承 したクラス4 このように一致するFilterが設定された クラス全部にIntentが飛んできます。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  9. 9. 動的に設定が可能 これもBroadcastRecieverの特徴なのですが、 IntentFilterを動的に生成できます。 Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) 受け取るBroadcastRecieverのインスタンス と、受信するIntentのFilterを登録します。 void unregisterReceiver(BroadcastReceiver receiver) 登録したBroadcastRecieverを解除する場合は こちらのメソッドを使う。 ※これらのメソッドはContextが持っていますので、 Contextを継承したActivityからは直接使えます。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  10. 10. 呼び出し方法 BroadcastRecieverは誰かから呼ばれない限り動 作しません。 もしプログラムから直接呼び出す場合は次のメ ソッドを使います。 void sendBroadcast(Intent intent) 呼び出すActionを設定したIntentを設定します。ちょ うどstartActivityに似ています。 void sendOrderedBroadcast(Intent intent, String receiverPermission) sendBroadcastに似ていますが、こちらは呼び出す順 序を守ってくれます。連続して送信する場合に送る順 番が重要な場合に利用します。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  11. 11. BroadcastRecieverの 注意点 BroadcastRecieverには処理時間に制約があります。 具体的にいうとBroadcastRecieverの処理は OnRecieveの中で行うのですが、この中で実行できる 処理は5秒までです。それ以上かかる処理の場合はシ ステムからは無応答と判断されてアプリは終了されま す。重たい処理をする場合は次回解説するServiceを 使う必要があるでしょう。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  12. 12. 実装例 AndroidManifest.xmlよりIntent-Filter <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name=".MyReciever" > <intent-filter> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> </intent-filter> </receiver> </application> MyReciver.java 実行結果 package ykmjuku.android.sample.app; USBケーブルを抜き差しすると次の <省略> public class MyReciever extends BroadcastReceiver { ようなログが出力される。 @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.d("Sample", "action="+intent.getAction()); } } Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  13. 13. システムで定義された BroadcastAction 名前 説明 ACTION_SCREEN_OFF 画面がOFFになったときに呼ばれます。 ACTION_SCREEN_ON 画面がONになったときに呼ばれます。 ACTION_BOOT_COMPLETED システムが起動したら呼ばれます。 ACTION_MEDIA_MOUNTED SDカードがマウントされたら呼ばれます。 ACTION_MEDIA_EJECT SDカードがはずされたら呼ばれます。 ACTION_PACKAGE_INSTALL アプリケーションがインストールされたら呼ばれます。 ACTION_PACKAGE_REMOVED アプリケーションがアンインストールされたら呼ばれます。 ここに紹介されていないものもいくつもありますので調べ てみるとよいでしょう。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  14. 14. サンプルアプリ ここで紹介したプログラムは次の URLからダウンロードできます。 ykmjuku011 http://bit.ly/xlt8sH Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  15. 15. 作ってみよう 電源がはいったときに自動で起動す るアプリを作ってみよう ヒント <receiver android:name="クラス名" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> このように一部のActionはこのようなパーミッションの 設定をしないと使えないものがあります。 解答例はこちら http://bit.ly/ytDuRS Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  16. 16. Serviceは? 続きは夜子まま塾オンライン(無料)にて 毎週水曜日夜10:30∼11:00 (都合によりない場合もあります) 夜子まま塾 http://bit.ly/wTjjix GoogleID:101190223376062765723 上記アカウントをサークルに追加していると、 ハングアウトのお誘いが届きます。 是非ご参加ください。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012

×