2013-06-28 34 views
1

我創建了一個擴展活動的類,它將提示用戶選擇一個電子郵件客戶端併發送電子郵件。如果我從MainActivity的onCreate內部調用它,我可以使這個類完美地工作。但是,一旦OpenGL啓動,我不知道如何在OpenGL循環接管後啓動此活動。我曾嘗試通過在MainActivity上下文我的OpenGL線程,並啓動電子郵件活動,如:從OpenGL主循環內開始一個新的Android活動

// 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內存越界錯誤。有什麼想法嗎?

回答

0

我認爲你使用GLSurfaceView來使用OpenGL。如果是這樣,請在發送電子郵件活動之前嘗試使用GLSurfaceView.onPause()。當回到OpenGL上的Activity時,調用GLSurfaceView.onResume();

+0

感謝您的提示。不幸的是,我使用了一個名爲jMonkey的包,它將很多核心的OpenGL東西(比如onPause()和onResume())從用戶中抽象出來。我曾試着研究它是如何工作的,並且它看起來像用OGLESContext啓動它自己的線程,並將主Android活動留在後面。這就是爲什麼我試圖傳遞上下文並啓動它,但我不知道爲什麼當我這樣做時出現OpenGL 1285錯誤。我認爲這與阻塞主更新線程有關? – tomsrobots