Android: Activity Dialog / Dialog disappears unexpectedly -
i have application tabactivity in displaying dialog each time callback engine (ndk c code). make sure dialog displayed when app in resume state.
upon receiving callback engine, start networkdowndialog activity, causes dialog stay second , disappear. same thing happens if use dialog or alertdialog. strangely, disappearance seems random (doesn't happen).
this s3 device. what's going on?
edit on 23/05/2013
network down dialog code
public class networkdowndialog extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.network_down); logger.d("networkdowndialog", "----------oncreate-----------"); registerreceiver(mnetworkdownreceiver, new intentfilter("networkdown")); } @override protected void ondestroy() { super.ondestroy(); unregisterreceiver(mnetworkdownreceiver); logger.d("networkdowndialog", "------ondestroy-------"); } @override protected void onresume() { super.onresume(); logger.d("networkdowndialog", "------onresume-------"); } @override protected void onrestart() { super.onrestart(); logger.d("networkdowndialog", "------onrestart-------"); } @override protected void onstart() { super.onstart(); logger.d("networkdowndialog", "------onstart-------"); } @override protected void onstop() { super.onstop(); logger.d("networkdowndialog", "------onstop-------"); } @override public void onbackpressed() { logger.d("networkdowndialog", "------onbackpressed nothing-------"); } private broadcastreceiver mnetworkdownreceiver = new broadcastreceiver() { @override public void onreceive(context context, intent intent) { finish(); } }; } in logs, see:
05-15 20:48:02.981 d/networkdowndialog( 1050): ------oncreate------- 05-15 20:48:02.981 d/alsa_ucm( 202): setting mixer control: rx5 mix1 inp2, value: rx2 05-15 20:48:02.991 d/alsa_ucm( 202): setting mixer control: rx6 dsm mux, value: dsm_inv 05-15 20:48:02.991 d/alsa_ucm( 202): setting mixer control: lineout2 volume, value: 100 05-15 20:48:02.991 d/alsa_ucm( 202): setting mixer control: lineout4 volume, value: 100 05-15 20:48:02.991 d/networkdowndialog( 1050): ------onstart------- 05-15 20:48:02.991 d/alsa_ucm( 202): setting mixer control: rx5 digital volume, value: 65 05-15 20:48:02.991 d/networkdowndialog( 1050): ------onresume------- activity dialog displayed
**05-15 20:48:05.073 w/inputdispatcher( 716): channel ~ consumer closed input channel or error occurred. events=0x9 05-15 20:48:05.073 e/inputdispatcher( 716): channel ~ channel unrecoverably broken , disposed!** 05-15 20:48:05.073 w/inputdispatcher( 716): attempted unregister unregistered input channel 05-15 20:48:05.083 i/surfaceflinger( 195): id=2033 removed idx=5 mapsz=4 05-15 20:48:05.083 d/keyguardviewmediator( 716): sethidden false 05-15 20:48:05.103 i/adreno200-eglsub( 195): <createimage:897>: android image 05-15 20:48:05.103 i/adreno200-eglsub( 195): <getimageattributes:1106>: rgba_8888 **05-15 20:48:05.103 e/bufferqueue( 195): [mypackage.networkdowndialog] dequeuebuffer: surfacetexture has been abandoned! 05-15 20:48:05.103 e/surfacetextureclient( 1050): dequeuebuffer failed (no such device**) 05-15 20:48:05.103 d/phonestatusbar( 894): addnotification score=0 05-15 20:48:05.123 e/viewrootimpl( 1050): not lock surface 05-15 20:48:05.123 e/viewrootimpl( 1050): java.lang.illegalargumentexception 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.surface.lockcanvasnative(native method) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.surface.lockcanvas(surface.java:88) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.viewrootimpl.drawsoftware(viewrootimpl.java:2314) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.viewrootimpl.draw(viewrootimpl.java:2277) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.viewrootimpl.performdraw(viewrootimpl.java:2145) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1956) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1110) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:4472) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.choreographer$callbackrecord.run(choreographer.java:725) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.choreographer.docallbacks(choreographer.java:555) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.choreographer.doframe(choreographer.java:525) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:711) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.os.handler.handlecallback(handler.java:615) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.os.handler.dispatchmessage(handler.java:92) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.os.looper.loop(looper.java:137) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ android.app.activitythread.main(activitythread.java:4918) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ java.lang.reflect.method.invokenative(native method) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ java.lang.reflect.method.invoke(method.java:511) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1004) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:771) 05-15 20:48:05.123 e/viewrootimpl( 1050): @ dalvik.system.nativestart.main(native method) in case, activitydialog disappeared after above.
why dialog disappearing? possible memory corruption @ c level native code causing problem? doing wrong on ui side? i'm totally stuck...
edit on 24 -05 -2013
05-24 19:49:00.025 i/surfaceflinger( 1901): id=2147 removed naintabactivity idx=3 mapsz=4 05-24 19:49:00.025 i/surfaceflinger( 1901): id=2147 removed naintabactivity idx=-2 mapsz=4 surfaceflinger removed tabactivity.will can cause dialog remove?
- make sure displaying dialog application context.
- make sure no 2 events come , hit same part of code.i.e when display dialog,one more event c code display dialog.
- make sure application has enough memory run smoothly.
Comments
Post a Comment