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