|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Volver atrás
Buenos días, estoy acabando casi mi aplicación (muy chorra pero mucho para mi). Os cuento más o menos (aunque el que haya seguido mis dudas más o menos sabra
![]() Dos TextView acceden a dos intent uno que abre otra activity y otro que abre una pagina web. Todo esto me funciona perfecto el problema es que quiero que al volver de la pagina web y/o a de la otra activity ese dialogo no este. Actualmente hago en este cuando pulso en un textView CÓDIGO: SELECCIONAR TODO txtLink.setOnClickListener(new OnClickListener(){ public void onClick(View v) { dialog.dismiss(); Uri uri = Uri.parse("http://"+link); Intent irA = new Intent(Intent.ACTION_VIEW); irA.setData(uri); startActivity(irA); } }); Si os dais cuenta antes de hacer nada hago un dialog.dismiss() pero aun así cuando vuelvo de la otra activity o de la pagina web me aparece el p**** dialogo. Alguien me puede ayudar? Muchas gracias un saludo!!! |
|
#2
|
||||
|
||||
Por lo que he leido de actividades, en este caso, creo que se queda la actividad en pausa, por lo que deberias usar el metodo onrelease...
Creo... Porque no llevo mucho en esto.. espero haberte ayudado.. Salu2 |
#3
|
||||
|
||||
Efectivamente la activity entra en pausa, pero siempre termina la ejecución, aunque pongas código posterior al startActivity ese código se ejecutará, incluso aunque pongas un finish, lo que viene después del finish también se ejecutará. Y encima en este caso el dismiss del cuadro de dialogo está puesto antes del startActivity
¿Si quitas el startActivity el cuadro si se va? En ese caso deberías de comprobar lo que hace la Activity en los métodos : onStart() y onResume(), porque en alguno de los 2 tiene que estar volviendo a crear el cuadro. |
#4
|
||||
|
||||
kriogeN, da lo mismo donde ponga el dismiss porque cuando vuelvo a la actividad principal sigue apareciendo. Por otra parte los métodos onStart() y onResume() no los uso en mi aplicacion, Se hace todo desde el método onCreate().
En este método llamo a otro que se llama hacerDialogo(String a, String b,...) donde le paso cuatro string y devuelve el Dialog, este dialogo se le paso al constructur de otra clase que es el encargado de mostartlo. Mas o menos: Código:
public class Main extends MapActivity{onCreate(){ ....... Dialog a = hacerDialog(String a, String b,String c, String d); ClaseB clase = new ClaseB(a); }}public class ClassB { private Dialog a; public ClassB(Dialog dialog){ a=dialog; } private void show(){ dialog.show(); } } |
#5
|
||||
|
||||
Pero no has respondido a mi pregunta, mi pregunta es si haciendo el dismiss sin lanzar la otra activity se quita el cuadro o no, porque si no se quita deberías empezar por ahí.
Y luego otra cosa, ¿como vuelves desde la otra activity? ¿haces un finish o creas a una nueva Main? |
#6
|
||||
|
||||
En cuanto a la primera pregunta, el dismiss funciona perfectamente.
La segunda pregunta no he hecho nada especifico referente a eso. Solo le doy para atrás y ya esta. Sinceramente no lo entiendo, si primero hago un dismiss el dialogo se cierra y luego hace lo que siga, da igual que sea un intent que sea lo que sea no? |
#8
|
||||
|
||||
Se trata de un MapActivity con objetos ItemizedOverlay y al pulsar sobre estos objetos aparece el dialogo. Si necesitas código decirlo!!
|
#9
|
||||
|
||||
1.- Que no se destruya bien, y siga ahi, cuando vuelves... 2.- Que se destruya y se vuelva a crear en alguna parte. De ahi que se te comente que mires los metodos de creacion y destruccion para detectar donde esta el problema... Si la destruccion esta correcta, entonces es que se vuelve a crear, Segun este grafico: ![]() solo algunos procesos se llaman al inicio o al retomar, que creo que tienes ke tener en cuenta. Que no se.....Que a lo mejor, es otra cosa, pero tiene pinta de que sera algo de esto... Salu2 ![]() |