我尝试从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互动:\
答案 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,它可以正常工作