Android aidlと一般サービス


最近、任医師の「Android芸術開発探索」を見て、収穫が豊富だと感じた.だからブログも記録したいです.ブログを書くのは確かに蓄積と総括の過程だからです.よし、くだらないことは言わないで.
サービスは全部で2種類に分けられますが、1つは普通のサービスで、サービスを直接継承するクラスで、比較的簡単です.主に、このクラスはプライマリスレッドで実行され、時間のかかる作業はできません.時間のかかる作業をする必要がある場合は、iスレッドを別途開く必要があります.
サービスの基本的な方法について、公式ドキュメントに基づいて説明します.
onStartCommand():他のコンポーネントがstartService()メソッドを呼び出すと、このメソッドは1回呼び出され、バックグラウンドで実行されます.メソッドを探している場合は、このメソッドが完了した後にstopSelfまたはstopServiceを呼び出す必要があります(bindingを取得するだけでこのメソッドを実装する必要はありません).これもベースサービスで仕事をする方法で、あなたが実現する機能をここに書きます.bindServiceでサービスを開始した場合、このメソッドは呼び出されません.
onStartCommandコールバックメソッドにはもう1つの戻り値があり、戻り値システムは合計3つ与えられています.
        1、START_NOT_STICKYという値のドキュメントには、システムがあなたの仕事が完了する前にこのサービスを殺すことは簡単ではないと書かれています.は比較的安全な値です.システムはこのサービスを再作成しません
        2、START_STICKYこの値を返すと、このサービスは再作成されますが、intentオブジェクトは渡されません.これはマルチメディア再生に適しています
onBind():他のコンポーネントがこのサービスにバインドしたい場合(例えば、リモートプロトコル呼び出しRPCを実装する)、この方法の実装では、クライアントと通信するためにIBinderインタフェースを提供する必要があります.プロセス間通信を実現するために実現しなければならない方法
onCreate():このサービスが初めて作成されたときにシステムがコールバックし、ここで初期化作業を行うことができます.
onDestroy():サービスが破棄されると、システムがコールバックし、メモリを解放する操作を行います.
もう1つのサービスも実現できる機能はInentServiceです.これと上の違いは、onHandleIntoにあることです.メソッド内で操作を行います.また,このコールバックは時間のかかる操作が可能である.
次に、サービスの開始、サービスの開始の主な2つの方法について説明します.1つ目はstartServiceです.onStartCommandサービスを実装した後、onCreateの後に1回呼び出され、再起動してもメソッドは呼び出されません.