【问题标题】:How to get FREContext from Context?如何从上下文中获取 FREContext?
【发布时间】:2014-01-18 18:34:03
【问题描述】:

我在BOOT_COMPLETED 之后自动启动了 ANE(Adobe Native Extension)。它作为一项服务运行,以侦听电话状态的变化。一切正常,直到我需要将主要的 AIR 活动放在前面以获得用户输入。我知道如何从服务中获取上下文,但不知道 FREContext。 我试过这个:

    myANEContextClass myANEContext = new myANEContextClass ();
    Activity myAIRActivity = myANEContext .getActivity();
    Intent in = new Intent(myAIRActivity,myAIRActivity.getClass()); 
    in.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

但它不工作,我收到错误:

E/AndroidRuntime( 3451): java.lang.UnsatisfiedLinkError: Native method not found: com.adobe.fre.FREContext.getActivity:()Landroid/app/Activity;

E/AndroidRuntime( 3451): at com.adobe.fre.FREContext.getActivity(Native Method)

但我认为这个过程是存在的,因为后来我得到了:

I/ActivityManager( 368): Process air.myANEApp (pid 3451) (adj 5) has died.

所以必须是从进程中获取 FREContext 的一种方式

【问题讨论】:

    标签: java android actionscript-3 adobe-native-extensions


    【解决方案1】:

    为了使其更通用,您应该使用如下内容:

    PackageManager pm = context.getPackageManager();
    Intent mainAppIntent = pm.getLaunchIntentForPackage( context.getPackageName() );
    mainAppIntent.addFlags( Intent.FLAG_ACTIVITY_REORDER_TO_FRONT );
    context.startActivity( mainAppIntent );
    

    这样,它会从上下文中提取包,该上下文应该是 ANE 所在的应用程序。这样它将启动 ANE 所在的应用程序,而不是硬编码的应用程序。

    【讨论】:

    • 这里的context是什么类型的对象?是 Android 上下文还是 FREContext?
    • context 是您的应用程序上下文,您可以通过 freContext.getActivity().getApplicationContext() 从 FREContext 中获取它
    【解决方案2】:

    我解决了它,像这样重新启动应用程序:

     Intent in = arg0.getPackageManager().getLaunchIntentForPackage("air.myANEApp");
     in.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
                |Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
                |Intent.FLAG_ACTIVITY_NEW_TASK);
    
     arg0.startActivity(in)
    

    【讨论】:

      【解决方案3】:

      我认为您不应该自己创建扩展类。 有人here 显然在处理同样的问题,但解决方案看起来更安全/清晰......

      【讨论】:

        猜你喜欢
        • 2019-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 2019-09-02
        相关资源
        最近更新 更多