从OpenGL主循环中启动一个新的Android活动



我创建了一个扩展"活动"的类,该类将提示用户选择电子邮件客户端并发送电子邮件。如果我在MainActivity的onCreate中调用它,我可以让这个类完美地工作。但是,一旦OpenGL启动,我不知道如何在OpenGL循环接管后启动此"活动"。我已经尝试将MainActivity上下文传递到OpenGL线程,并启动电子邮件活动,如:

// This starts a new activity and sends the email with the text file
Intent emailIntent = new Intent(context, SendEmailActivity.class);
String filePath = Environment.getExternalStorageDirectory().toString() + "/MoCap/TomsFile.txt";
emailIntent.putExtra("filePath", filePath);
emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(emailIntent);

它会很好地启动我的活动。然而,在我发送完电子邮件后,我返回到OpenGL 1285内存越界错误。有什么想法吗?

我认为您使用GLSurfaceView来使用OpenGL。如果是这样,请在发送电子邮件至"活动"之前尝试GLSurfaceView.onPause()。当回到OpenGL上的"活动"时,调用GLSurfaceView.onResume();

我在这里找到了问题的答案:从上下文完成活动

我需要在调用startActivity之后添加((Activity) context).finish();

最新更新