2011-10-24 16 views
10

Quiero comenzar una de mis actividades existentes y forzar la actividad para llamar a un método específico después de que comenzó.Android New Intent start método particular

¿Esto es posible?

¿Puedo definir un método que debería llamarse después de crear la actividad dentro de mi Intento?

Por ejemplo algo como:

Intent intent = new Intent(this, com.app.max.Home.class.myMethod); 
+3

más descripción necesaria. –

+0

Crea una actividad, comienza con un intento. http://goo.gl/tWsyM – user999717

+0

He agregado más información. Tal vez estoy usando la terminología equivocada. Voy de una actividad a otra usando intenciones. ¿Es eso correcto? – Somk

Respuesta

0

creo que el siguiente enlace le ayudará. switching between activities

+0

Gracias. Entiendo cómo cambiar de una actividad a otra, solo me pregunto si puedes orientar un método en particular cuando apuntas a la actividad. – Somk

+0

Lukap lo ha respondido y creo que es una solución para lo que ha pedido. –

16

No, no creo que pueda tener algo como esto Intención intento = nuevo Intención (this, com.app.max.Home.class.method);

pero se puede hacer esto

Intent intent = new Intent(this, com.app.max.Home.class); 
intent.putExtra("methodName","myMethod"); 
startActivity(intent); 

y luego en la actividad llamada (donde tiene que iniciar el método) puede tener la intención y decidir el método para llamar

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    if(intent.getStringExtra("methodName").equals("myMethod")){ 
     mymethod(); 
    } 
} 
+1

intenté esto, como: '' '@Override protected void onNewIntent (intención intencionada) { super.onNewIntent (intention); if (intencion.getStringExtra ("methodName"). equals ("drawOnJupiter")) { this.drawView.drawOnJupiter(); } } '' sin suerte – kinghenry14

+0

No está llamando aNewIntent(). pero la actividad comienza. – Imeshke

+0

@Imeshke El mismo problema aquí, ¿encontró una solución para eso? –

0

que resolver este problema mediante el uso de onCreate en lugar de onNewIntent.

Actividad A:

Intent intent = new Intent(this, com.app.max.Home.class); 
intent.putExtra("methodName","myMethod"); 
startActivity(intent); 

com.app.max.Home Actividad:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.home); 

    if(savedInstanceState == null) 
    { 
     Bundle extras = getIntent().getExtras(); 
     if (extras == null) 
     { 
      //Extra bundle is null 
     }else{ 
      String method = extras.getString("methodName"); 

      if (method.equals("myMethod")) 
      { 
       //Call method here! 
      } 
     } 
    } 

Esperanza esta solución resuelve el problema

0

Usted pregunta parece interesante, pero no hay manera puedes hacerlo usando Intent. Debe comprender que cuando inicia una actividad, pasa por un ciclo de vida que es: onCreate() ->onStart() - >OnResume(). Entonces, ¿qué se puede hacer es empezar a ese método de onResume() así:

@Override 
protected void onResume() { 
    super.onResume(); 
    myMethod();//start your method from here 
} 

sólo estoy tratando de ayudar, dame un poco más de información acerca de su problema si este enfoque no resuelve su problema.

Cuestiones relacionadas