从 ANE 启动新 activity 后未分派 MouseEvent
MouseEvent not dispatched after launching a new activity from ANE
我正在尝试从 Android 功能的 Air Native Extension 启动一个新的 activity:
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);
}
activity启动成功,但是我添加到air app stage的MouseEvent.Click停止工作了。
我还尝试使用 context.getActivity().startActivity(); 启动它
相同的结果。
更新:
好的,所以我知道我必须使用当前的 activity。
问题是我正在尝试使用 YouTube API 来显示播放器。
在他们的许多示例中,您需要扩展 activity 才能使用它。
这就是我为避免使用新 activity:
而实施的
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,当我点击播放器上的播放按钮时,它不显示视频,只显示声音。
使用单独的 activity 播放器工作正常但没有 Air 交互:\
当您启动另一个 Activity 时,那个 Activity 将接管输入并占据整个屏幕。
如果您希望保留现有 AIR 应用程序的功能,则不应启动另一个 Activity,而应考虑向当前 Activity 添加一个视图。
要使用 LayoutParams params
添加 View v
到 AIR 应用程序,您可以使用如下内容:
ViewGroup fl = (ViewGroup)context.getActivity().findViewById(android.R.id.content);
fl.addView( v, params );
试试这个:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
如果您为您的Activity
使用对话框主题,它工作正常
我正在尝试从 Android 功能的 Air Native Extension 启动一个新的 activity:
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);
}
activity启动成功,但是我添加到air app stage的MouseEvent.Click停止工作了。 我还尝试使用 context.getActivity().startActivity(); 启动它 相同的结果。
更新: 好的,所以我知道我必须使用当前的 activity。 问题是我正在尝试使用 YouTube API 来显示播放器。 在他们的许多示例中,您需要扩展 activity 才能使用它。
这就是我为避免使用新 activity:
而实施的 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,当我点击播放器上的播放按钮时,它不显示视频,只显示声音。
使用单独的 activity 播放器工作正常但没有 Air 交互:\
当您启动另一个 Activity 时,那个 Activity 将接管输入并占据整个屏幕。
如果您希望保留现有 AIR 应用程序的功能,则不应启动另一个 Activity,而应考虑向当前 Activity 添加一个视图。
要使用 LayoutParams params
添加 View v
到 AIR 应用程序,您可以使用如下内容:
ViewGroup fl = (ViewGroup)context.getActivity().findViewById(android.R.id.content);
fl.addView( v, params );
试试这个:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
如果您为您的Activity
使用对话框主题,它工作正常