On Jun 13, 2012, at 9:30 AM, Sayed Arian Kooshesh wrote:
> this is an idea but since I don't know your design, I don't know if it will
> fit.
>
>
> make a
>
> [Application]
> public class myGlApp: Application
> {
>
> public void onCreate()
> {
> //create a pool of float bytes here that you can reuse
>
> }
>
> ~myGlApp()
> {
> //MAKE SURE TO DESTROY POOL PROPERLY
> }
I doubt that this will work, as I doubt that the myGIApp finalizer will ever be
invoked. The Application instance is a singleton that is alive for as long as
the process lives, and when Android exits the process Android doesn't give the
GC a chance to run (why should it?), and even if it did give the Dalvik GC a
chance to run it's highly unlikely that Mono's GC would get a chance to run,
and if Mono's GC doesn't run (AND find that Dalvik is no longer referencing the
Java-side Application instance!), then Mono's GC won't execute the finalizer.
In short, I think it's a safe bet that the Application finalizer will never
run, period.
Finally, as a point of style, you should never provide a finalizer for
Java.Lang.Object subclasses. You should instead override
Java.Lang.Object.Dispose(bool):
http://androidapi.xamarin.com/index.aspx?link=M:Java.Lang.Object.Dispose(System.Boolean)
- Jon
_______________________________________________
Monodroid mailing list
[email protected]
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid