2011-10-24 27 views
10

Varolan etkinliklerimden birini başlatmak ve başlatıldıktan sonra belirli bir yöntemi çağırmak için etkinliği zorlamak istiyorum.Android New Amaç başlangıç ​​yöntemi

Bu mümkün mü?

Niyetim içinde etkinlik oluşturulduktan sonra çağrılması gereken bir yöntem tanımlayabilir miyim?

Örneğin gibi bir şey:

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

daha fazla açıklama gerekli. –

+0

Bir etkinlik oluşturun, bir amaç ile başlatın. http://goo.gl/tWsyM – user999717

+0

Daha fazla bilgi ekledim. Belki yanlış terminolojiyi kullanıyorum. Bir etkinlikten diğerine niyetleri kullanarak gidiyorum. Bu doğru mu? – Somk

cevap

0

aşağıdaki linki size yardımcı olacağını düşünüyorum. switching between activities

+0

Teşekkürler. Etkinlikler arasında nasıl geçiş yapacağımı anlıyorum, yalnızca etkinliği hedeflediğinizde belirli bir yöntemi hedefleyip hedeflemeyeceğinizi merak ediyorum. – Somk

+0

Lukap yanıtladı ve ben sizin sorduklarınız için bir çözüm olduğuna inanıyorum. –

16

Hayır, böyle bir şeye sahip olabileceğinizi sanmıyorum Niyet niyet = new Intent (this, com.app.max.Home.class.method);

ama yapabileceğiniz bu

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

ve sonra (eğer yöntemini başlamak gerekir) olarak adlandırılan etkinliğe

niyet alıp

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

Bunu denedim, şu gibi: '' '@Override korumalı boşluk onNewIntent (Niyet amacı) { super.onNewIntent (intent); ise (niyet).getStringExtra ("methodName"). eşittir ("drawOnJupiter")) { this.drawView.drawOnJupiter(); } } '' ' Şanssız – kinghenry14

+0

OnNewIntent() çağırmıyor. ama aktivite başlar. – Imeshke

+0

@Imeshke Burada aynı sorun, bunun için bir düzeltme buldunuz mu? –

0

Çözmem aramaya hangi yöntemin karar verebilir Bu sorun, onNewIntent yerine onCreate'u kullanarak.

Etkinlik C:

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

com.app.max.Home Etkinlik:

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! 
      } 
     } 
    } 

Umut bu çözüm çözmek senin sorunun

0

Sen sorusu ilginç görünüyor, ama orada hiçbir şekilde Intent kullanarak yapabilirsiniz. Bir aktiviteye başladığınızda, bir yaşam döngüsünden geçtiğini anlamalısınız: onCreate() ->onStart() - >OnResume(). Sadece yardım etmeye çalışıyorum

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

bu yaklaşım sorununuzu çözmez ise, bana sorun hakkında biraz daha bilgi vermek: Peki ne yapabiliriz böyle onResume() gelen bu yöntemi başlamaktır.

İlgili konular