Sorry the hassle - sorted it all out the requestExitAndWait() was a red-herring.
The problem was fixed properly by setting the activity launchMode = singleTask Now my app (with all its multiple threads) handles the HOME key and the back key properly. I am not sure the GLSurfaceView class as it is currently is designed to support anything except singleTask mode? Cheers Jake On Oct 24, 2:06 pm, Zorro666 <[email protected]> wrote: > Ok - so I have fixed the rendering problems by taking the source to > GLSurfaceView and changing the onPause() function to be like this: > > public void onPause() { > synchronized (this) { > mPaused = true; > ---> NEW BIT requestExitAndWait(); > } > } > > So now it ends the GL thread when onPause() is called. > > The documentation for GLSurfaceView does say setRenderer() should only > be "called once and only once in the life-cycle of a GLSurfaceView" > but not obvious how to do that within the Android life-cycle framework > e.g. onCreate(), onStart(), onPause(). > > I would be welcome for suggestions on how to make a single instance of > GLSurfaceView for the whole life-cycle of my activity including > support for the HOME button which doesn't call onDestroy() but does > call onCreate() repeatedly. > > Jake > > On Oct 21, 9:12 pm, Zorro666 <[email protected]> wrote: > > > > > In SDK 1.5 > > > I have a simple GLSurfaceView app which is not working when I use the > > home key to pause it. If I use the back key then all is fine (onStop > > () and onDestroy() get called). Pressing HOME just calls the onPause() > > function. > > > The problem appears to be the onPause() call is not terminating the > > glThread. On successive restarts of the app after pressing the home > > key then I get an extra glThread per run. Only the first run of the > > app leads to proper rendering. > > > I have implemented the most basic GLSurfaceView app from here > > (changing the clear colour to pink): > > >http://android-developers.blogspot.com/2009/04/introducing-glsurfacev... > > > and I get the same problem. If I press the HOME key then restart the > > app on the second run the graphics rendering is not active i.e. the > > screen stays black instead of pink. > > > Any suggestions on how to handle the onPause() function properly when > > using a GLSurfaceView. I am calling the onPause() function in the > > GLSurfaceView member but that isn't enough. It feels like I need to > > wait for the render thread to finish or process the pause command or > > even force it to exit somehow? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---

