从OpenGL主循环内部启动一个新的Android Activity

时间:2013-06-28 00:00:03

标签: android opengl-es android-activity

我创建了一个扩展Activity的类,它会提示用户选择一个电子邮件客户端并发送一封电子邮件。如果我从我的MainActivity的onCreate中调用它,我可以让这个类完美地工作。但是,一旦OpenGL启动,我不知道如何在OpenGL循环接管后启动此Activity。我已经尝试将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内存超出界限错误。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我在这里找到了我的问题的答案: Finishing an Activity from a context

我打电话给((Activity) context).finish();后需要添加startActivity