Android Service関連メソッド

Android Service関連メソッド

public final Application getApplication()
このサービスを所有するアプリを返す

public abstract IBinder onBind(Intent intent)
サービスへの通信チャネルを返す
クライアントがサービスにBindできないならnullを返す

引数のintentは、Context.bindService()に与えられたこのサービスにbindするために使われるIntent

戻り値は、クライアントがサービスを呼び出すことができるIBinder

public void onConfigurationChanged(Configuration newConfig)
コンポーネントの実行中にデバイスのconfigurationが変更されると
システムにより呼び出される

Activityや他のコンポーネントとは違い
構成変更のときに再起動されないのて注意

引数のnewConfigは、新しいデバイスの設定

public void onCreate()
サービスが最初に作成されたときに、システムにより呼び出される
このメソッドの直接呼び出しはダメ

public void onDestroy()
長い間使用されず、削除されるサービスへ通知するためにシステムにより呼び出される
サービスは、この時点で保持しているすべてのリソース
つまり、スレッド、登録されたレシーバーなどをクリーンアップする必要がある

戻った後、このサービスオブジェクトへの
これ以上の呼び出しはなく、事実上死んでいることになる
このメソッドも直接呼び出しはダメ

public void onLowMemory()
システム全体のメモリが不足していると呼び出され、積極的に実行しているプロセスに倹約を求める
これが呼び出されるときの明確なポイントは定義されてないが
一般的には、サービスとkillされるのを回避したいフォアグラウンドUIをホストしているプロセスをkillする直前に
すべてのbackground processがkillされたときに呼び出される

public void onReBind(Intent intent)
前持ってすべてのクライアントが
onUnBind(Intent)で切断されたことが通知された後に
新しいクライアントがサービスに接続したときに呼び出される

onUnBind(Intent)がtrueを返すように
Overrideしたときのみ呼び出される

引数のintentは、
Context.bindServiceに与えられた
このサービスにbindするために使われたintent
その時点でIntentに含まれていた任意のExtraはここではみれない

public int onStartCommand(Intent intent, int flags, int startId)
クライアントがstartService(Intent)の呼び出しにより明示的にサービス開始するごとに
それに与えられたものと
開始要求を示す一意の整数トークンを定義され、
システムにより呼び出される

後方互換性のため、デフォルト実装では
onStart(Intent,int)を呼び出し
START_STICKY
または
START_STICKY_COMPATIBILITY
のいずれかを返す

引数のintentは、
startService(Intent)に与えられたIntent
サービスは、そのプロセスがなくなった後に再起動され
それ以前に
START_STICKY_COMPATIBILITY
以外のものを返しているなら
nullになることがある

flagsは、この開始要求に関する追加データ

0
START_FLAG_REDELIVERY
または
START_FLAG_RETRY
のいずれかになる
API Level 8,
API Level 16ではデフォルトが0
API level 9~15はSTART_FLAG_RETRYがデフォルトになる

startId
開始要求を表す一意の整数
stopSelfResult(int)と一緒に使う

戻り値は、サービスの現在の開始状態のためにシステムが使用すべきセマンティクスを示す
START_CONTINUATION_MASKビットに関連した定数のいずれかになる

public void onTaskRemoved(Intent rootIntent)
サービスが現在実行されており、ユーザーがアプリからのタスクを削除したときに呼び出される

ServiceInfo.FLAG_STOP_WITH_TASK
を設定すると、コールバックを受け取れなくなるが、代わりにサービスが停止になる

引数のrootIntentは、削除されたタスクを起動するため使われた元のrootIntent

public void onTrimMemory(int level)
OSがそのプロセスから不要なmemoryをtrimmingするのに良い時間だと判断したときに呼び出される
プロセスがbackgroundに入り
必要に応じて実行している多くの
background processを保持するのに十分なメモリがないときに発生する

引数のlevelは、trimのContext
動作しているアプリをtrimmingする量のヒントを与える

TRIM_MEMORY_COMPLETE
TRIM_MEMORY_MODERATE
TRIM_MEMORY_BACKGROUND
TRIM_MEMORY_UI_HIDDEN
TRIM_MEMORY_RUNNING_CRITICAL
TRIM_MEMORY_RUNNING_LOW
TRIM_MEMORY_RUNNING_MODERATE
のいずれかになる

public boolean onUnbind(Intent intent)
すべてのクライアントがサービスにより発行された特定のインターフェースから切り離されたときに呼び出される

デフォルト実装では、falseを返す

引数のintentは、
Context.bindServiceに与えられた、このサービスにbindするために使われたIntent
その時点でIntentに含まれていた任意のExtraは、ここではみれない

戻り値は
新しいクライアントがサービスにbindするときに
onRebind(Intent)を呼び出してほしいなら
trueを返す

public final void startForeground(int id, Notification notification)
サービスをForegroundで実行するようにする
この状態の間は、ユーザーに示されるために対応中の通知を与える

引数のidは、
NotificationManager.notify(int, Notification)ごとの
notificationのための識別子

notificationは、表示される通知

public final void stopForeground(boolean removeNotification)
より多くのメモリが必要なときにkillされていいように
Foreground状態からこのサービスを削除する

引数のremoveNotificationは、trueなら
以前のstartForeground(int,Notification)
で提供された通知を削除する

falseなら、後の呼び出しが削除
または、サービスが破棄されるまで残る

public final void stopSelf()
サービスがすでに開始されているなら停止する

public final void stopSelf(int startId)
stopSelf(int)の古いバージョンで、結果を返さない

public final boolean stopSelfResult(int startId)
startIdで開始された最新のサービスを停止する

引数のstartIdは、
onStart(Intent, int)で受信した最新の開始識別子

戻り値は、最新の開始要求とstartIdが一致し、サービスご停止されるならtrue
そうでないならfalse

protected void dump(FileDescriptior fd, PrintWriter writer, String[] args)
与えられたストリームへサービスの状態を印刷する
adb shell dumpsys activity サービス名
で実行したときに呼び出される

引数のfd は、dumpに送信されるRAWファイル記述子

writerは、状態をdumpするための
PrintWriterオブジェクト
この関数かれ戻るときに自動的にクローズされる

argsは、dump requestへの追加の引数

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です