android - Why is Fragment.onResume() not displaying my GUI until after onResume finishes completely? -
i writing android application interfaces motorola emdk, , running issue timing/threading. have activity adds fragment perform specific function using emdk, displays screen tells user happening , cleaned activity after 15 seconds.
i noticing 1-2 second delay between when emdk action occurs, in case device cradle being unlocked, , when gui displayed says "the cradle unlocked."
i have done research how android handles drawing screen fragments, , can find says onresume called "when fragment becomes visible." not match experience, however. according how understand code below should work, screen should drawn , emdkmanager.getemdkmanager() method called, constructs pointer emdk service , creates new thread perform unlock:
@override public void onresume() { super.onresume(); emdkmanager.getemdkmanager(getactivity().getapplicationcontext(), this); } it looks more screen drawn once onresume() completes in entirety, ie emdkmanager.getemdkmanager() finishes call well.
as fragment emdklistener object required second parameter method, struggling finding way thread correctly. need gui drawn first or @ same time cradle unlock occurs.
are there other methods can overridden or interfaced equivalent onviewdrawn() event fragment?
thank much.
all lifecycle method oncreate(), onresume() onstop() etc. called main thread, responsible drawing ui.
by preforming long operation in method, block ui thread handling touch input drawing app
you can start long operation on thread doing so:
new thread(new runnable() { @override public void run() { // long operations here } }.start(); note if operation wants update ui components must done on ui thread, can passing runnable activity
activity.runonuithread(new runnable() { public void run() { // ui updating but, not block here } }); (or can create handler if it's service or want delay runnables)
Comments
Post a Comment