从ANE启动新活动后未调度MouseEvent

时间:2015-12-10 14:16:54

标签: android actionscript-3 air youtube-api air-native-extension

我尝试从Air Native Extension for Android功能启动新活动:

public FREObject call(FREContext context, FREObject[] args)
{

    try {
        Context contextApp = context.getActivity().getApplicationContext();

        Intent intent = new Intent(contextApp, DumbActivity.class);

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        contextApp.startActivity(intent);

    }

活动已成功启动,但我添加到air app阶段的MouseEvent.Click已停止工作。 我还尝试使用context.getActivity()启动它.startActivity(); 相同的结果。

更新: 好的,所以我知道我必须使用当前的活动。 问题是我尝试使用YouTube API来显示播放器。 在他们的许多示例中,您需要扩展活动以使用它。

这就是我为避免使用新活动而实施的内容:

        playerView = new FrameLayout(activity.getApplicationContext());
        playerView.setId(R.id.player_view);

        playerFragment = YouTubePlayerFragment.newInstance();
        playerFragment.initialize(DeveloperKey.DEVELOPER_KEY, this);
        activity.getFragmentManager().beginTransaction().add(R.id.player_view, playerFragment).commit();

        container.addView(playerView, 640, 360);

当我从本机启动它时它可以正常工作,但是使用ANE时,当我点击播放器上的播放按钮时,它不显示视频,只显示声音。

通过单独的活动,玩家可以正常工作但没有Air互动:\

2 个答案:

答案 0 :(得分:1)

当您启动另一个Activity时,该Activity将接管输入并占据整个屏幕。

如果您希望保留现有AIR应用程序的功能,那么您不应该启动另一个Activity,而是考虑将View添加到当前Activity。

要使用View v向AIR应用程序添加LayoutParams params,您可以使用以下内容:

ViewGroup fl = (ViewGroup)context.getActivity().findViewById(android.R.id.content);
fl.addView( v, params );

答案 1 :(得分:0)

试试这个:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);

如果您为活动

使用Dialog Theme,它可以正常工作