サービス紹介サービスタイプサービス基本用法サービスライフサイクルサービス詳細サービス紹介サービスは、Androidでプログラムのバックグラウンドで実行されるソリューションであり、ユーザーと対話する必要がなく、長期的に実行するタスクを実行するのに非常に適しています.サービスの実行は、任意のユーザーインタフェースに依存せず、プログラムがバックグラウンドに切り替えられたり、ユーザーが別のアプリケーションを開いたりしても、サービスは正常に動作します.ただし、サービスは独立したプロセスで実行されるのではなく、サービスの作成時に存在するアプリケーションプロセスに依存することに注意してください.アプリケーション・プロセスが殺されると、プロセスに依存するすべてのサービスが停止します.また、サービスはスレッドを自動的に開くのではなく、すべてのコードがデフォルトでプライマリスレッドで実行されます.サービス内でサブスレッドを手動で作成し、ここで具体的なタスクを実行する必要があります. サービスタイプ使用範囲1.ローカル・サービス:アプリケーションの内部機能:Activityなどのアプリケーションが属するスレッドを占有するのではなく、単一のスレッドのバックグラウンドで実行するアプリケーション独自の時間のかかるタスクを実現します.使用:サービスでContextを呼び出すことができます.startServiceが起動し、Contextを呼び出す.stopService終了.内部でサービスを呼び出すことができます.stopSelfまたはServices.stopSelfResultは自分で止めます.startService()が何回呼び出されても、stopService()を1回呼び出すだけで停止します. 2.リモートサービス(Remote Sercie):androidシステム内部のアプリケーション間の機能:天気予報サービスなどの他のアプリケーションに多重化され、他のアプリケーションはこのようなサービスを書く必要がなく、既存のものを呼び出すことができる.使用:インタフェースを定義し、他のアプリケーションが操作できるようにインタフェースを露出できます.クライアントは、サービスオブジェクトへの接続を確立し、その接続によってサービスを呼び出す.Contextを呼び出す.BindService()メソッドは接続を確立し、Contextを呼び出すために起動する.unbindService()は接続を閉じます.複数のクライアントは、同じサービスにバインドできます.サービスがまだロードされていない場合は、bindService()が先にロードされます.実行カテゴリ1.フロントサービスフロントサービスはstartForegroundまたはsetForegroundを呼び出してサービスをフロントサービスにする必要があり、フロントサービスを使用するとバックグラウンドでサービスが実行されるときにシステムkill 2になることを避けることができる.バックグラウンドサービスバックグラウンドサービスはバックグラウンドで実行されます.
サービス基本用法1.サービスを定義
public class MyService extends Service {
@Ovierride
public IBinder onBind(Intent intent) {
return null;
}
}
1つのサービスは、onCreat、onStartCommand、onDestroyの3つの方法で最もよく使用されます.onCreateはサービス作成時に呼び出され、onStartCommandメソッドはサービス起動時に呼び出され、onDestroyはサービス破棄時に呼び出されます.2.サービスにはリストファイルAndroidManfestが必要です.xmlで登録してから有効になります
サービスライフサイクルサービスは、自分で起動することはできません.ContextオブジェクトからstartServiceまたはbindServiceメソッドを呼び出すことでのみ起動できます.1)startServices:ServiceはonCreate->onStartを経験します.onCreateは1回のみ呼び出され、onstartは複数回呼び出される可能性があります.stopService:onDestroyを呼び出します.呼び出し元がstopServiceを呼び出さずに直接終了すると、サービスはバックグラウンドで実行されます.このサービスの呼び出し元は、起動後にstopServiceを呼び出してサービスを閉じることができます.2)bindServices:ServiceはonCreate->onBindを経験し、onBindはクライアントにIBindインタフェースインスタンスを返します.呼び出し元とサービスが結合され、Contextが終了すると、サービスはonUnbind->onDestroyを呼び出します.マルチバインディング不可3)サービスのオン・オフのたびにonStartのみが複数回呼び出され(複数回startServiceで呼び出されます)、その他のonCreate,onBind,onUnbind,onDestoryは1ライフサイクルで1回しか呼び出されません4)BroadcastReceiverはstartServiceでのみサービスを起動できます.ブロードキャスト自体のライフサイクルが短いためbindでは意味がありませんサービス詳細1.サービスは基本的にバックグラウンドで実行され、優先度が低い.メモリ不足の場合はサービスを回収します.フロントサービスを利用して回収を避けることができます.フロントサービスでは、通知の効果と同様に、システムステータスバーにドロップダウンステータスバーを表示すると、常に実行中のアイコンが表示されます.InentServiceを使用します.onHandleIntentメソッドではスレッドで実行されており,プログラム異常の問題ANRを心配する必要はない.無パラメトリック構造の良い本を提供し、その内部で親クラスのパラメトリック構造関数を呼び出さなければならない.
public class MyIntentService extents IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
public void onHandleIntent(Intent intent) {
}
}