I don't have an answer to your actual question, however -
wouldn't it be more reliable to initialize native code from a static block? class MyApplication extends Application { private native void initializeNativeSide(); static { initializeNativeSide(); } } -- Kostya 31.10.2010 10:34, Mark Murphy пишет:
In a comment on an epic StackOverflow question-and-answer, a gentleman who I will call Tim has outlined a scenario he says he is running into, one I have some difficulty believing. Reading somewhat between the lines, the flow would appear to be this: 1. User taps on an activity icon in the launcher 2. Process starts up 3. Application object is put in that process -- and a custom Application object loads an NDK library which initializes some statics/singletons 4. User uses application 5. User abandons application (e.g., HOME) 6. Later, user returns to application, before the first process is killed or recycled for use with another app 7. A second Application object is created, in the same process, before the first Application object is called with onTerminate() This screws things up for Tim's app -- apparently, it does not deal with pre-initialized statics/singletons well. They were presumably counting on onTerminate() to let them clean up the NDK space. As a result, they are relying upon killProcess() (somehow...unclear under what conditions they might call this) to force their own process to go away, so their statics get cleaned up. Step #7 is what confuses me. I can see a new Application object being created, but only if the first Application object were terminated. I don't see any NDK-related bugs out on b.android.com that seem to match this complaint, though in principle it might cause problems for non-NDK apps as well. Has anyone encountered a new Application object being created in a process before the old one is terminated? Thanks!
-- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en