FREContext
オブジェクトは、Java 関数のセットと、コンテキストに特化した状態を提供します。拡張は、FREContext クラスの具象サブクラスを少なくとも 1 つ実装する必要があります。
FREContext クラスには、実装しなくてはならない 2 つの抽象メソッドが定義されています。
コンテキストの破棄
拡張の ActionScript 側では、ExtensionContext インスタンスの
dispose()
メソッドを呼び出すことができます。ActionScript の
dispose()
メソッドを呼び出すと、ランタイムによって Java の FREContext クラスの
dispose()
メソッドが呼び出されます。
ActionScript 側で
dispose()
を呼び出さない場合は、ランタイムのガベージコレクターが、ExtensionContext インスタンスに対する参照がなくなったときに、そのインスタンスを破棄します。その時点で、ランタイムによって Java の FREContext クラスの
dispose()
メソッドが呼び出されます。
FREContext の例
次に示す例は、FREContext の単純な実装です。クラス内で、関数 1 つを含んだ関数マップを作成しています。
package com.example;
import java.util.HashMap;
import java.util.Map;
import android.util.Log;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
public class ExtensionContext extends FREContext {
private static final String CTX_NAME = "ExtensionContext";
private String tag;
public ExtensionContext( String extensionName ) {
tag = extensionName + "." + CTX_NAME;
Log.i(tag, "Creating context");
}
@Override
public void dispose() {
Log.i(tag, "Dispose context");
}
@Override
public Map<String, FREFunction> getFunctions() {
Log.i(tag, "Creating function Map");
Map<String, FREFunction> functionMap = new HashMap<String, FREFunction>();
functionMap.put( UsefulFunction.KEY, new UsefulFunction() );
return functionMap;
}
public String getIdentifier() {
return tag;
}
}
|
|
|