Android New Intent starten bestimmte Methode

Ich möchte eine meiner bestehenden Aktivitäten beginnen und die Aktivität zwingen, eine bestimmte Methode aufzurufen, nachdem sie angefangen hat.

Ist das möglich?

Kann ich eine Methode definieren, die nach dem Erstellen der Aktivität in meiner Absicht aufgerufen werden soll?

Zum Beispiel etwas wie:

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

  • Sortieren eines Arrays von Dateinamen mit Strings mit Zahlen
  • Android - Layout_Gravity programmgesteuert für LinearLayout einstellen
  • So stellen Sie den (OAuth Token) Authorization Header auf eine Android OKHTTPClient Anfrage ein
  • Merkwürdiger Fehler in Eclipse Indigo
  • Android gradle src / androidTest / res / layout / mylayout.xml nicht gefunden in mypackage.R
  • Android scrollview entfernen blaues Licht
  • Wie man rohe Werte von 3gp / AMR-NB Audioformat liest?
  • Umwandlung in Dalvik-Format fehlgeschlagen mit Fehler 1 seit facebook SDK
  • 4 Solutions collect form web for “Android New Intent starten bestimmte Methode”

    Nein, ich glaube nicht, dass du so etwas haben kannst. Intent intent = new Intent (this, com.app.max.Home.class.method);

    Aber das kannst du

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

    Und dann in der angerufenen Aktivität (wo Sie die Methode starten müssen) können Sie die Absicht nehmen und entscheiden, welche Methode anzurufen

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

    Ich denke, der folgende Link wird dir helfen. Umschalten zwischen Aktivitäten

    Ich löse dieses Problem, indem ich onCreate anstelle von onNewIntent .

    Aktivität A:

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

    Com.app.max.Home Tätigkeit:

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

    Hoffe, diese Lösung löst dein Problem

    Sie Frage ist interessant, aber es gibt keine Möglichkeit, dass Sie es mit Intent tun können. Sie müssen verstehen, dass, wenn Sie eine Aktivität beginnen, geht es durch einen Lebenszyklus, der ist: onCreate() -> onStart()>OnResume() . Also, was Sie tun können, ist diese Methode von onResume() wie folgt zu starten:

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

    Ich versuche nur zu helfen, gib mir noch mehr Informationen über dein Problem, wenn dieser Ansatz dein Problem nicht löst.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.