夜子まま塾講義12(broadcast reciever)
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,605 views

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

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

Statistics

Views

Total Views
1,605
Views on SlideShare
1,605
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • Now Loading. Please Wait ... Twitter @yokmama 画面のないアプリ① 夜子まま塾 講義10(BroadcastRecieverの解説) Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • 自己紹介 氏名   :寺園聖文(てらぞの まさふみ) 肩書   :株式会社Re:Kayo-System 代表取締役社長 活動拠点 :神戸近郊∼日本→海外行きたい 著書   :「10日でおぼえるAndroidアプリ開発入門教室」著(翔泳社)       「HTML5によるAndroidアプリ開発入門」監修(日経BP) アプリ  :「JUST PLAYER」「Skip Memo」「ふりがなオートマチック」等 好きなもの:アニメ、決して萌えじゃない、見てるけど、あくまで研究の一環 嫌いなもの:とくになし 最近のテーマ:電子工作、運動すること、英語 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • 画面のないアプリ Activityは画面ありきのアプリです。 しかし、アプリによっては画面を必要 としないアプリもあります。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • センサーアプリ 傾きセンサー センサーアプリ GPS 電話 データ保存 メール送信 端末の状態 設定変更 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • バックグラウンドで動作 するアプリ ダウンローダー インターネット等からファイル等をバックグ ラウンドでダウンロードするアプリ 定期チェック サーバーの情報を定期的にチェックし、変更が ある場合に処理をするアプリ 音楽プレイヤー 他のアプリを使っている最中にも常に音楽を鳴ら し続ける Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • 画面のないアプリ • BroadcastReciever (ブロードキャストレシーバー) • Service (サービス) この2つを使い分けて作ります。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • BroadcastReciver BroadcastRecieverはIntentを受け取る、 受け取り専用のクラスです。 あまり時間のかかる処理をするべきではあ りませんので、その場合は次に紹介する Serviceと連携する必要があります。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • BroadcastReciverの働き BroadcastReciverを継承 したクラス Intent-Filterによって受信できる Intentを設定する Intent BroadcastReciverを継承 したクラス2 BroadcastReciverを継承 したクラス3 BroadcastReciverを継承 したクラス4 このように一致するFilterが設定された クラス全部にIntentが飛んできます。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • 動的に設定が可能 これも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
  • 呼び出し方法 BroadcastRecieverは誰かから呼ばれない限り動 作しません。 もしプログラムから直接呼び出す場合は次のメ ソッドを使います。 void sendBroadcast(Intent intent) 呼び出すActionを設定したIntentを設定します。ちょ うどstartActivityに似ています。 void sendOrderedBroadcast(Intent intent, String receiverPermission) sendBroadcastに似ていますが、こちらは呼び出す順 序を守ってくれます。連続して送信する場合に送る順 番が重要な場合に利用します。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • BroadcastRecieverの 注意点 BroadcastRecieverには処理時間に制約があります。 具体的にいうとBroadcastRecieverの処理は OnRecieveの中で行うのですが、この中で実行できる 処理は5秒までです。それ以上かかる処理の場合はシ ステムからは無応答と判断されてアプリは終了されま す。重たい処理をする場合は次回解説するServiceを 使う必要があるでしょう。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • 実装例 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
  • システムで定義された 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
  • サンプルアプリ ここで紹介したプログラムは次の URLからダウンロードできます。 ykmjuku011 http://bit.ly/xlt8sH Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
  • 作ってみよう 電源がはいったときに自動で起動す るアプリを作ってみよう ヒント <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
  • Serviceは? 続きは夜子まま塾オンライン(無料)にて 毎週水曜日夜10:30∼11:00 (都合によりない場合もあります) 夜子まま塾 http://bit.ly/wTjjix GoogleID:101190223376062765723 上記アカウントをサークルに追加していると、 ハングアウトのお誘いが届きます。 是非ご参加ください。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012