Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.1.0 E60836-01 |
|
![]() 前 |
![]() 次 |
この章では、MAFアプリケーションまたはアプリケーション機能のイベントに応じて実行可能なコードを記述するための、MAFに用意されているライフサイクル・リスナーについて説明します。
この章の内容は次のとおりです。
ライフサイクル・リスナーは、アプリケーションの固有のイベントに応じて実行されるコードを記述するために便利な場所です。MAFは、アプリケーションまたはアプリケーション機能イベントに応じたコードを記述できるライフサイクル・リスナーを備えています。アプリケーション・ライフサイクル・リスナー・メソッドの標準的な実装としては、第17.2項「ローカルSQLiteデータベースの使用方法」に示されているように、アプリケーションの起動時にアプリケーションのデータベースを初期化するコードを記述するか、または第29.4.7項「実行時に名前付き接続の接続属性を更新する方法」に示されているように、URLパラメータからセキュリティ構成を更新します。
MAFは、イベント通知と通信するために実装できる次の2つのインタフェースを備えています。
oracle.adfmf.application.LifeCycleListener
このインタフェースには、アプリケーション・ライフサイクル・リスナーが実装する必要のある次のメソッドを指定します。
activate()
deactivate()
start()
stop()
oracle.adfmf.feature.LifeCycleListener
このインタフェースには、機能ライフサイクル・リスナーが実装する必要のある次のメソッドを指定します。
activate()
deactivate()
ライフサイクル・リスナーを作成するには、適切なインタフェースを実装するJavaクラスを作成し、第11.2項「MAFアプリケーションまたはアプリケーション機能のライフサイクル・リスナーの登録」に示されているように、MAFアプリケーションの実装を登録します。
新規作成するMAFアプリケーションは、図11-1
に示されているように、アプリケーションのApplicationControllerプロジェクトにapplication.LifeCycleListenerImpl.java
クラスをデフォルトで作成することによって、oracle.adfmf.application.LifeCycleListenerインタフェースを実装します。
アプリケーション・ライフサイクル・リスナーは、匿名ユーザーによって実行されます(つまり、そのリスナーのメソッドにはどのユーザーも関連付けられず、セキュアなWebサービスもコールされません)。
表11-1は、アプリケーションの起動時、シャットダウン時および休止時にアプリケーション・ライフサイクル・メソッドをMAFが起動する特定の時刻を示しています。
表11-1 MAFによるアプリケーション・ライフサイクル・メソッドの起動タイミング
メソッド | タイミング | いつコールされるか | 使用方法 |
---|---|---|---|
|
MAFアプリケーションがアプリケーション機能を完全にロードした後、ユーザーに最初のアプリケーション機能またはSpringboardを表示する直前にコールされます。これはブロック化コールです。 |
アプリケーションの処理が開始されたとき。 |
次の使用方法があります。
|
|
MAFアプリケーションがシャットダウンを開始するときにコールされます。 |
アプリケーションの処理が終了したとき。 |
次の使用方法があります。
|
|
MAFアプリケーションを背景にある(休止)状態からアクティブ化するときにコールされます。これはブロック化コールです。 |
|
次の使用方法があります。
|
|
MAFアプリケーションを非アクティブ化し、背景に移動(休止)するときにコールされます。これはブロック化コールです。 |
|
次の使用方法があります。
|
表11-2は、機能のアクティブ化および非アクティブ化時にMAFが機能ライフサイクル・メソッドを起動する特定のタイミングを示しています。
表11-2 MAFによる機能ライフサイクル・メソッドの起動のタイミング
メソッド | タイミング | いつコールされるか | 使用方法 |
---|---|---|---|
|
現在のアプリケーション機能がアクティブ化される前にコールされます。 |
ユーザーがMAFアプリケーションの起動後に初めてアプリケーション機能を選択したとき、またはアプリケーション機能が再選択されたとき(つまり、フォアグラウンドに戻されたとき)にコールされます。 |
次の使用方法があります。
|
|
次のアプリケーション機能がアクティブ化される前、またはアプリケーション機能が終了する前にコールされます。 |
ユーザーが別のアプリケーション機能を選択したときにコールされます。 |
たとえば、 |
oracle.adfmf.application.LifeCycleListener
インタフェースおよびoracle.adfmf.feature.LifeCycleListener
インタフェースの詳細は、Oracle Fusion Middleware Oracle Mobile Application Framework用Java APIリファレンスを参照してください。
LifecycleEventsサンプル・アプリケーションは、アプリケーション・インタフェースと機能インタフェースの両方を実装し、これらをMAFアプリケーションのmaf-application.xml
ファイルとmaf-feature.xml
ファイルに登録するリスナー・クラスの宣言を示しています。このサンプル・アプリケーションは、開発用コンピュータのJDeveloperインストール・ディレクトリ内にある次の場所のPublicSamples.zip
ファイルに含まれています。
jdev_install\jdeveloper\jdev\extensions\oracle.maf\Samples
サンプル・アプリケーションの詳細は、付録G「サンプルのMAFアプリケーション」を参照してください。
アプリケーション・ライフサイクル・リスナーの登録は、maf-application.xml
ファイルの概要エディタを使用して行い、機能ライフサイクル・リスナーの登録は、maf-features.xml
ファイルの概要エディタを使用して行います。
アプリケーション・ライフサイクル・リスナーを登録するには:
「アプリケーション」ウィンドウで、「アプリケーション・リソース」パネルを開きます。
「アプリケーション・リソース」パネルでDescriptorsを展開し、ADF META-INFを展開します。
maf-application.xmlをダブルクリックします。
「Application」ナビゲーション・タブで、oracle.adfmf.application.LifeCycleListener
インタフェースを実装するJavaクラスをLifecycle Event Listenerフィールドに指定します。デフォルトでは、これはapplication.LifeCycleListenerImpl
に設定されています。
MAFに用意されているデフォルト実装と異なるカスタム・クラスを使用するシナリオは、別のところで使用するために配布されるJARライブラリにアプリケーション・ライフサイクル・リスナーをパッケージ化するときのためのものです。
アプリケーション機能ライフサイクル・リスナーを登録する手順:
「Application」ウィンドウで、ViewControllerプロジェクトを展開し、「アプリケーション・ソース」およびMETA-INFを展開します。
maf-feature.xmlファイルをダブルクリックします。
機能ライフサイクル・リスナーを登録する機能を「機能」リストで選択します。
「ライフサイクル・イベント・リスナー」フィールドに、oracle.adfmf.feature.LifeCycleListener
インタフェースを実装するJavaクラスを指定します。
デフォルトでは、作成するMAFアプリケーションは、アプリケーションのApplicationControllerプロジェクトでのapplication.LifeCycleListenerImpl.java
クラスの作成を介して、アプリケーション・ライフサイクル・リスナーを実装します。maf-application.xml
ファイルのlistener-class
属性は、例11-1に示されているように、このクラスを登録します。
例11-1 maf-application.xmlでのアプリケーション・ライフサイクル・リスナーの登録
<adfmf:application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/adf/mf" version="1.0" name="NewMAFapp" id="com.company.NewMAFapp" appControllerFolder="ApplicationController" listener-class="application.LifeCycleListenerImpl"> ... </adfmf:application>
機能ライフサイクル・リスナーを登録すると、JDeveloperでは、listener-class
属性用のmaf-feature.xml
ファイルにエントリを書き込みます。例11-2は、付録G「サンプルのMAFアプリケーション」に記載されているLifecycleEventsサンプル・アプリケーションのエントリを示しています。
例11-2 maf-feature.xmlでのアプリケーション機能ライフサイクル・リスナーの登録
<?xml version="1.0" encoding="UTF-8" ?> <adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/adf/mf"> <adfmf:feature id="Feature1" name="Feature1" listener-class="mobile.Feature1Handler"> <adfmf:description>This is a sample feature to show the feature lifecycle handlers. </adfmf:description> <adfmf:content id="Feature1.1"> <adfmf:amx file="Feature1/feature1.amx"/> </adfmf:content> </adfmf:feature> ... </adfmf:features>