この記事では、Androidサービスを実行するアプリケーションのサポートについて詳しく説明します。Androidサービスを利用するアプリケーションが複雑なのは、サービスの実行中にユーザーがアプリを閉じても、アプリケーションオブジェクトがサービスに接続しているため存続するからです。
このため、サービス実行中にアプリケーションを再度起動した場合にApplication:onCreateメソッドが呼び出されず、その結果、初期化コードが呼び出されなくなります(Pendo SDKの初期化はApplication:onCreateメソッドに依存しているため)。
動作とデータの一貫性を保つために、次の3つのAPIを使用します。
- endSession() - このAPIは、サービスのonTaskRemoved()メソッドから呼び出されて、ユーザーがアプリケーションを閉じた時にセッションを削除します。
- setup(...) - このAPIはApplication:onCreateから呼び出されます。このAPIは、SDKに必要な基本的な初期化を確実に行います。
- startSession(...) - startSession()メソッドを呼び出すと、セッションが再開されます。 このAPIは、すでに訪問者IDが使用可能になっているアプリの任意のコンテキストから呼び出され、通常はアクティビティのonCreateメソッドから呼び出されます。
セッション終了API
endSessionメソッドを呼び出すと、以下のことが起こります。
- 訪問者IDとアカウントIDが削除されます。
- ガイドが表示されなくなります。
- アナリティクスが送信されなくなります。
このAPIは、サービスのonTaskRemovedメソッドで呼び出されます。
public static void endSession()