扩展 FREContext 类

FREContext 对象提供一组 Java 函数和上下文特定状态。您的扩展必须至少提供一个 FREContext 类的具体实现。

FREContext 类定义两个您必须实现的抽象方法:

  • getFunctions() — 必须返回一个 Map 对象,AIR 运行时使用该对象查找上下文提供的函数。

  • dispose() — 当可以清除上下文资源时,由运行时调用此函数。

释放上下文

扩展的 ActionScript 端可以调用 ExtensionContext 实例的 dispose() 方法。调用 ActionScript dispose( ) 方法将导致运行时调用 FREContext 类的 Java dispose() 方法。

如果 ActionScript 端不调用 dispose() ,当不再存在对 ExtensionContext 实例的引用时,运行时垃圾回收器将释放该实例。那时,运行时将调用 FREContext 类的 Java dispose() 方法。

FREContext 示例

下面的示例演示一个简单的 FREContext 实现。此类创建一个函数映射,其中包含一个函数。

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; 
    } 
}