2011-10-24 14 views
10

मैं अपनी मौजूदा गतिविधियों में से एक शुरू करना चाहता हूं और गतिविधि शुरू करने के बाद एक विशिष्ट विधि को कॉल करने के लिए मजबूर करना चाहता हूं।एंड्रॉइड नया इरादा विशेष विधि शुरू करें

क्या यह संभव है?

क्या मैं एक ऐसे तरीके को परिभाषित कर सकता हूं जिसे मेरे इरादे के अंदर गतिविधि बनाने के बाद बुलाया जाना चाहिए? जैसे

उदाहरण के लिए कुछ:

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

अधिक जानकारी की आवश्यकता है। –

+0

एक गतिविधि बनाएं, इसे एक इरादे से शुरू करें। http://goo.gl/tWsyM – user999717

+0

मैंने और जानकारी जोड़ दी है। शायद मैं गलत शब्दावली का उपयोग कर रहा हूँ। मैं इरादों का उपयोग करके एक गतिविधि से दूसरे में जा रहा हूं। क्या वो सही है? – Somk

उत्तर

0

मुझे लगता है कि आप नीचे दिए गए लिंक में मदद मिलेगी। switching between activities

+0

धन्यवाद। मैं समझता हूं कि गतिविधियों के बीच कैसे स्विच करना है, मैं बस सोच रहा हूं कि क्या आप गतिविधि को लक्षित करते समय किसी विशेष विधि को लक्षित कर सकते हैं। – Somk

+0

लुकाप ने इसका उत्तर दिया है और मेरा मानना ​​है कि यह आपके द्वारा पूछे जाने वाले कार्यों के लिए एक कामकाज है। –

16

नहीं, मुझे नहीं लगता कि आपके पास इरादा इरादा = नया इरादा (यह, com.app.max.Home.class.method) जैसा कुछ हो सकता है;

लेकिन आप क्या कर सकते हैं इस

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

और फिर कहा जाता है गतिविधि (जहां विधि शुरू करने की आवश्यकता) में आशय लेने के लिए और तय जो विधि कॉल करने के

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

मैंने इसे आजमाया, जैसे: '' @ ओवरराइड न्यूइन्टेंट (इरादा इरादा) पर सुरक्षित शून्य { super.onNewIntent (मंशा); अगर (इरादा।getStringExtra ("methodName") बराबर है ("drawOnJupiter")) { this.drawView.drawOnJupiter(); } } '' कोई किस्मत – kinghenry14

+0

के साथ यह न्यूइन्टेंट() पर कॉल नहीं कर रहा है। लेकिन गतिविधि शुरू होती है। – Imeshke

+0

@ इमेशके यहां एक ही मुद्दा है, क्या आपको इसके लिए कोई फिक्स मिला? –

0

मैं हल कर सकते हैं onNewIntent के बजाय onCreate का उपयोग करके यह समस्या।

गतिविधि एक:

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

com.app.max.Home गतिविधि:

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

आशा इस समाधान का समाधान आपकी समस्या

0

कोई रास्ता नहीं आप सवाल दिलचस्प लगता है, लेकिन वहाँ है आप इसे Intent का उपयोग कर कर सकते हैं। आपको यह समझना होगा कि जब आप कोई गतिविधि शुरू करते हैं, तो यह एक जीवन चक्र से गुज़रता है जो है: onCreate() ->onStart() - >OnResume()

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

मैं सिर्फ मदद करने के लिए कोशिश कर रहा हूँ, मुझे अपनी समस्या के बारे में कुछ और जानकारी देना है, तो इस दृष्टिकोण आपकी समस्या का समाधान नहीं करता है: तो आप क्या कर सकते onResume() इस तरह से है कि विधि शुरू है।

संबंधित मुद्दे