SSブログ

Androidプログラミングの基礎[4] サービス [Android]

今回のテーマは「サービス」です。

第4回: サービスによる常駐アプリケーション

サービスとは時間のかかるような処理を行うための仕組み。

1.サービスとは

サービスを使うと、ユーザーが異なるアプリケーションを実行していてもバックグラウンドで作業を行うことができる。いわゆる「常駐型プログラム」を作成できる。

◎ サービスの作成方法

サービスは、Serviceクラス(android.app.Service)を継承して、次のようなコールバックメソッドを必要に応じてオーバーライドしながら処理を記述する。

Serviceクラスの主なメソッド

メソッド 解説
void onCreate サービスが最初に生成されたときに呼ばれる
int onStartCommand startServiceメソッドによるサービス開始要求を受けたときに呼ばれる
IBinder onBind bindServiceメソッドによるサービス開始要求を受けたときに呼ばれる
void onRebind すべての接続が解除された後に、新しいクライアントからサービス開始要求を受けたときに呼ばれる
boolean onUnbind すべてのクライアントがサービスから接続を解除したときに呼ばれる
void onDestroy サービスが破棄されるときに呼ばれる

◎ IntentServiceクラスによるサービスの作成方法

IntentServiceクラス(android.app.IntentSefrvice)は、煩雑な別スレッド作成処理を行ってくれるサービス用のクラス。

IntentServiceクラスには、void onCreate, int onStartCommand, IBind onBind, void onDestrohy, void onHandleIntent メソッド等がある。

複雑なスレッドを生成する場合、またサービスとの双方向通信を必要としない場合には、このクラスを継承してサービスを作ればよい。

◎ サービスの開始方法

⇒ startServiceを使ったサービス

アクティビティによって開始されるサービス。サービスが開始されると、stopSelfメソッドで自信を停止するか、アクティビティのstopServiceメソッドが実行されるまで停止しない。

⇒ bindServiceを使ったサービス

アクティビティによってバインドされたサービス。

 

2.startServiceを使ったサービス

◎ サンプル作成

アクティビティからインテントで渡された秒数だけ処理を停止するだけの単純なサービス。

プロジェクト設定

・新規Androidアプリケーション

アプリケーション名 ServiceExample
プロジェクト名 ServiceExample
パッケージ名 jp.andsys.android.serviceexample
最小必須 SDK API 8: Android 2.2 (Froyo)
ターゲット SDK API 18
次でコンパイル API 10: Android 2.3.3 (Gingerbread)
テーマ None

・プロジェクトの構成

ディフォルトのまま

・アイコンの属性

ディフォルトのまま

・アクティビティーの作成

Blank Activity

・Blank Activity

アクティビティ名 ServiceExampleActivity
レイアウト名 main
ナビゲーション・タイプ None

⇒ サービスクラスの作成

IntentServiceクラスを継承したクラスを作成します。

設定項目 入力値 / 選択項目
パッケージ jp.andsys.android.serviceexample
名前 SampleService
スーパークラス android.app.IntentService
インターフェイス (なし)

SampleService.java の編集

”ServiceExample/src/jp/andsys/android/serviceexample/SampleService.java”

image

⇒ マニフェストファイルの修正

AndroidManifest.xml の編集

”ServiceExample/AndroidManifest.xml”

image

⇒ レイアウトとアクティビティの作成

main.xml の編集

”ServiceExample/res/layout/main.xml”

image

ServiceExampleActivity.java の編集

”ServiceExample/src/jp/andsys/android/serviceexample/ServiceExampleActivity.java”

image

⇒ 実行

「インテントでサービスを開始」ボタンを押します。

image

サービスが開始されました。

image

5秒後にサービスが終了しました。

image

 

3.bindServiceを使ったサービス

後からサービスに対する操作を行うことが容易で、アクティビティをサービスを紐付け(バインド)することで、データのやり取りが可能となる。

◎ HandlerとMessenger

サービスとの通信を行うために、MessengerクラスとHandlerクラスを使う。

⇒ Handlerクラス

メッセージの遅延処理をしたり、別スレッドへ処理を依頼したりします。

⇒ Messengerクラス

メッセージを送信するために使用するHandlerへの参照です。

⇒ Messageクラス

Handlerに送信することのできる任意のデータと、その伝達事項を含んだメッセージを定義する。

◎ サービスへのバインド

サービスに接続して通信を行う場合は、サービスの状態を監視するためのServiceConnectionインターフェースを利用する。

◎ サンプル作成

アクティビティからサービスへバインドするサンプルです。

プロジェクト設定

・新規Androidアプリケーション

アプリケーション名 BindServiceExample
プロジェクト名 BindServiceExample
パッケージ名 jp.andsys.android.bindserviceexample
最小必須 SDK API 8: Android 2.2 (Froyo)
ターゲット SDK API 18
次でコンパイル API 10: Android 2.3.3 (Gingerbread)
テーマ None

・プロジェクトの構成

ディフォルトのまま

・アイコンの属性

ディフォルトのまま

・アクティビティーの作成

Blank Activity

・Blank Activity

アクティビティ名 BindServiceExampleActivity
レイアウト名 main
ナビゲーション・タイプ None

⇒ サービスクラスの作成

Serviceクラスを継承したクラスを作成します。

設定項目 入力値 / 選択項目
パッケージ jp.andsys.android.bindserviceexample
名前 BindService
スーパークラス android.app.Service
インターフェイス (なし)

BindService.java の編集

”ServiceExample/src/jp/andsys/android/bindserviceexample/BindService.java”

image

⇒ マニフェストファイルの修正

AndroidManifest.xml の編集

”BindServiceExample/AndroidManifest.xml”

image

⇒ レイアウトとアクティビティの作成

main.xml の編集

”BindServiceExample/res/layout/main.xml”

image

BindServiceExampleActivity.java の編集

”BindServiceExample/src/jp/andsys/android/bindserviceexample/BindServiceExampleActivity.java”

image

image

⇒ ServiceConnectionの実装

onServiceConnected メソッド

機能 サービスとの接続が完了したときに呼ばれるコールバックメソッド
書式 void onServiceConnected(ComponentName name, IBinder service)
引数 name : サービスクラスの識別子が渡される
service : サービスから受け取ったIBinderオブジェクトが渡される

onServiceDisconnected メソッド

機能 サービスとの接続が予期せず切断されたときに呼ばれるコールバックメソッド
書式 void onServiceDisconnected(ComponentName name)
引数 name : 切断されたサービスクラスの識別子が渡される

⇒ サービスへのバインド

サービスを起動するには、ServiceConnectionの実装を引数にしてbindServiceを呼び出す。

bindService メソッド

機能 サービスを開始する
書式 boolean bindService(Intent service, ServiceConnection conn, int flags)
引数 service : 開始するサービスのインテント
conn : 接続に使用するServiceConnectionオブジェクト
flags : バインドのオプション

◎ サービスへメッセージを送信する

メッセージオブジェクトを作成する場合には、コンストラクタからではなくobtainめどっどを使う。

obtain メソッド

機能 Messageオブジェクトを作成する
書式 Message obtain(Handler h, int what, int arg1, int arg2, Object obj)
引数 h : Messageオブジェクトを送信するHandlerオブジェクト
what : 受信側がメッセージを識別するためのユーザー定義のコードを指定
arg1, arg2 : 追加のメッセージ
obj : サービスへ渡す任意のオブジェクト

メッセージの送信はMessangerのsendメソッドを使用する。

send メソッド

機能 このMessangerが指すHandlerへメッセージを送信する
書式 void send(Message message)
引数 message : 送信するメッセージ

⇒ サービスからのアンバインド

サービスからアンバインドするにはunbindServiceメソッドを呼びます。

unbindService メソッド

機能 サービスをアンバインドする
書式 void unbindService(ServiceConnection conn)
引数 conn : 切り離すサービスのServiceConnectionオブジェクト

⇒ 実行

起動画面から「サービスにバインドする」ボタンを押すとバインドされました。

image

「サービスにメッセージを渡す(Android)」ボタンを押すと、メッセージが送信され「Hello Android!」と表示されます。

image

「サービスにメッセージを渡す(アンドロイド)」ボタンを押すと、「Hello! アンドロイド!」と表示されます。

image

「サービスからアンバインドする」ボタンを押してからはメッセージは表示されなくなります。

 

4.双方向メッセージに対応する

アクティビティからサービスにメッセージを送った後に応答を返すようにする。

◎ サンプル作成

BindServiceExampleをサービスとアクティビティの双方向通信に対応させる。

BindServiceExampleActivity.java の編集

”BindServiceExample/src/jp/andsys/android/bindserviceexample/BindServiceExampleActivity.java”

image

image

image

⇒ サービスクラスの変更

BindService.java の編集

”BindServiceExample/src/jp/andsys/android/bindserviceexample/BindService.java”

image

⇒ 実行

実装方法が変わっただけで、アプリケーションの動作は見た目かわりなく動作します。

 

5.サービスとライフサイクル

サービスのライフサイクルコールバックメソッド

メソッド 解説
void onCreate サービス生成時
int onStartCommand startServiceメソッドによるサービス開始時
IBinder onBind bindServiceメソッドによるサービス開始時
void on Rebind 再バインド時
boolean onUnbind バインド解除時
void onDestroy サービス破棄時

以上で「サービス」を終了します。

 

本記事は以下の参考書を元にしています。


nice!(0)  コメント(9)  トラックバック(1) 

nice! 0

コメント 9

CloneFBcleah


Mua bán, nick facebook, cung cấp, tài khoản, facebook, mua, acc facebook. ...http://taikhoan.co
by CloneFBcleah (2020-05-09 23:26) 

TwitterCo-box

Bán Account Twitter cổ từ 2007 đến 2017 random follower dưới 100 giá 23k/accs.
Giá có thể thay đổi theo thời điểm.

http://accs.vn

Liên hệ:
Zalo : 0934670123
accsmarket.net@gmaildot.com

Thank you!
by TwitterCo-box (2021-01-07 12:55) 

Ramoniteld

<a href=https://adti.uz><img src="https://i.ibb.co/zh0ymFC/137.jpg"></a>



Over the years of independence, the institute has trained more than 13000 physicians (including 800 clinical interns, 1116 masters, 200 postgraduates and 20 doctoral students) in various directions.

870 staff work at the institute at present,<when>] including 525 professorial-teaching staff in 55 departments, 34 of them are Doctors of science and 132 candidates of science. 4 staff members of the professorial-teaching staff of the institute are Honoured Workers of Science of the Republic of Uzbekistan, 3 – are members of New-York and 2 – members of Russian Academy of Pedagogical Science.

The institute has been training medical staff on the following faculties and directions: Therapeutic, Pediatric, Dentistry, Professional Education, Preventive Medicine, Pharmacy, High Nursing Affair and Physicians’ Advanced Training. At present<when>] 3110 students have been studying at the institute (1331 at the Therapeutic faculty, 1009 at the Pediatric, 358 at the Dentistry, 175 students at the Professional Education Direction, 49 at the faculty of Pharmacy, 71 at the Direction of Preventive Medicine, 117 ones study at the Direction of High Nursing Affair).

Today graduates of the institute are trained in the following directions of master's degree: obstetrics and gynecology, therapy (with its directions), otorhinolaryngology, cardiology, ophthalmology, infectious diseases (with its directions), dermatovenereology, neurology, general oncology, morphology, surgery (with its directions), instrumental and functional diagnostic methods (with its directions), neurosurgery, public health and public health services (with its directions), urology, narcology, traumatology and orthopedics, forensic medical examination, pediatrics (with its directions), pediatric surgery, pediatric anesthesiology and intensive care, children's cardiology and rheumatology, pediatric neurology, neonatology, sports medicine.

The clinic of the institute numbers 700 seats and equipped with modern diagnostic and treating instrumentations: MRT, MSCT, Scanning USI, Laparoscopic Center and others.

There are all opportunities to carry out sophisticated educational process and research work at the institute.

Source:
https://adti.uz/ordinatura/
<a href=https://adti.uz/ordinatura/>Andijan Medical Institute</a>

Tags:
Andijan Medical Institute
state medical institutes
study in absentia at a medical institute
medical news

by Ramoniteld (2021-06-18 01:43) 

Stevenner

Download GPlus software - Auto Marketing for Youtube

You are selling online, and do not have an effective product marketing solution. FPlus is the number 1 choice in Youtube marketing.
Free Download Here:

https://filehug.com/GPlus.zip
https://filerap.com/GPlus.zip
https://fileshe.com/GPlus.zip

<img src="https://plus24h.com/frontend/img/plus24h_screen.png">


The main functions of the software

Create a youtube channel - Create Channel - GPlus
GPlus helps you create many different channels on youtube of the same gmail account. Thus, you can use it to perform cross-channel interactions on youtube, increase interaction for channels...
GPlus helps you to search for videos by keyword. You can set the conditions of the videos you want to search (by rating, view ...) and choose to search on multiple pages.
GPlus supports you to scan the playlist of a channel on youtube. You can scan the number of videos in a playlist, the total number of views and the names of these playlists.
GPlus helps you increase subscribers on youtube channels. You can use sub accounts to increase the subs of the main channels.
GPlus will help you comment on youtube videos, and help increase likes and subscribers for your youtube channel.
GPlus helps you subscribe to the channels you want on youtube quickly. This function allows using multiple accounts to subscribe to one or more channels, from there, you can subscribe to your own or someone else's chanel.
This function will help you get the Links of the Contributors of the videos on your youtube channel using GPlus software. This link allows anyone to edit your playlist without your permission, as long as there is a collaborator link, other people can edit this playlist.
You can set up and reset your playlist: security, sort or change playlist name only with GPlus software.
Helps you to search videos by keyword. You can find the address ID, title, view… At the same time, you can also download the background image of any video to your computer and GPlus.
GPlus helps you check the playlist information of any channel: ID, title, number of videos...
GPlus helps you scan and remove corrupted videos from your playlist or add, mix new videos into your playlist.
GPlus helps you to create a series of playlists on your youtube channel. Playlist is created from the videos you find by keyword on youtube and your videos are added in the video link list.
Scan and check proxy quickly, support scanning proxy with 1000 threads at the same time.
Automatically find youtube video links and automatically bulk comment on found videos.

Thank u
by Stevenner (2021-08-03 07:59) 

Stevenner

Download GPlus software - Auto Marketing for Youtube

You are selling online, and do not have an effective product marketing solution. FPlus is the number 1 choice in Youtube marketing.
Free Download Here:

https://filehug.com/GPlus.zip
https://filerap.com/GPlus.zip
https://fileshe.com/GPlus.zip

<img src="https://plus24h.com/frontend/img/plus24h_screen.png">


The main functions of the software

Create a youtube channel - Create Channel - GPlus
GPlus helps you create many different channels on youtube of the same gmail account. Thus, you can use it to perform cross-channel interactions on youtube, increase interaction for channels...
GPlus helps you to search for videos by keyword. You can set the conditions of the videos you want to search (by rating, view ...) and choose to search on multiple pages.
GPlus supports you to scan the playlist of a channel on youtube. You can scan the number of videos in a playlist, the total number of views and the names of these playlists.
GPlus helps you increase subscribers on youtube channels. You can use sub accounts to increase the subs of the main channels.
GPlus will help you comment on youtube videos, and help increase likes and subscribers for your youtube channel.
GPlus helps you subscribe to the channels you want on youtube quickly. This function allows using multiple accounts to subscribe to one or more channels, from there, you can subscribe to your own or someone else's chanel.
This function will help you get the Links of the Contributors of the videos on your youtube channel using GPlus software. This link allows anyone to edit your playlist without your permission, as long as there is a collaborator link, other people can edit this playlist.
You can set up and reset your playlist: security, sort or change playlist name only with GPlus software.
Helps you to search videos by keyword. You can find the address ID, title, view… At the same time, you can also download the background image of any video to your computer and GPlus.
GPlus helps you check the playlist information of any channel: ID, title, number of videos...
GPlus helps you scan and remove corrupted videos from your playlist or add, mix new videos into your playlist.
GPlus helps you to create a series of playlists on your youtube channel. Playlist is created from the videos you find by keyword on youtube and your videos are added in the video link list.
Scan and check proxy quickly, support scanning proxy with 1000 threads at the same time.
Automatically find youtube video links and automatically bulk comment on found videos.

Thx
by Stevenner (2021-08-21 23:43) 

Twitterprath

Cung cấp Nick Twitter cổ 2009>2010 - Email Gmail New Chất lượng tốt : https://Accs.vn

Click

https://accs.vn

Many thanks

Tags:
mua Tài khoản twitter cổ
mua bán nick twitter
bán nick twitter
đăng ký nick twitter
by Twitterprath (2021-09-28 14:11) 

ShermanBlemy

Cung cấp Accounts Twitter cổ 2009>2010 - Nick Gmail Mới Chất lượng tốt : https://CloneVia.com

Click here

https://CloneVia.com

Many thanks

Tags:
mua email twitter cổ
mua bán nick twitter
bán Tài khoản twitter
đăng ký nick twitter
by ShermanBlemy (2021-10-04 05:32) 

AaronSoals

Coin Doubler – HOW DOES IT WORK?
https://coindoubler.net

Coin Doubler is a fully automated Bitcoin investment platform operating with no human intervention.
Take full advantage of our fast and legit Bitcoin doubler platform.
Our automated system gathers information from the blockchain transfers and cryptocurrency exchanges to study and predict the Bitcoin price.
Our servers open and close thousands of transactions per minute, analyzing the price difference and transaction fees,
and use that information to double your Bitcoins. Our data centers are located on multiple locations around the world so that our system has 100% uptime guaranteed.

WHY USE OUR INVESTMENT PLATFORM?
Trusted Bitcoin Investment platform with fully automated payouts
Receive your double Bitcoins in 10 hours
Only 0.005 BTC minimum and 10 BTC maximum investment limits
Easy to use interface for both new and experienced investors
Track your investment with our dynamic table showing most recent transactions
CDN powered website with SSL security and DDoS protection
100% uptime with zero chance for a transaction to fail

Visit

https://coindoubler.net

With thanks
by AaronSoals (2021-10-04 14:58) 

RobertAlent



Hệ thống đổi thẻ cào sang thẻ game lớn nhất việt nam phục vụ cho tất cả khách hàng có nhu cầu đổi thẻ và mua thẻ.
Đổi thẻ cào thành tiền mặt tự động - Thanh toán nhanh...https://doithenap.com
by RobertAlent (2021-10-16 07:02) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 1

WordPress Plugin [Ti..WordPress Plugin [Bu.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。