2011-10-24 9 views
10

私は既存のアクティビティの1つを開始し、アクティビティを開始した後で特定のメソッドを呼び出すようにしたいと思います。Android New Intent特定のメソッドを開始

これは可能ですか?

私の意図内でアクティビティを作成した後に呼び出すメソッドを定義できますか?例えば

のようなもの:私は、次のリンクはあなたを助けるだろうと思い

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

さらに詳しい説明が必要です。 –

+0

アクティビティを作成し、インテントで開始します。 http://goo.gl/tWsyM – user999717

+0

私は詳細を追加しました。多分私は間違った用語を使用しています。私はインテントを使ってあるアクティビティから別のアクティビティに移動しています。あれは正しいですか? – Somk

答えて

0
+0

ありがとうございます。アクティビティを切り替える方法を理解していますが、アクティビティをターゲットにするときに特定のメソッドをターゲットにできるかどうかは疑問です。 – Somk

+0

Lukapはそれに答えており、私はそれがあなたが尋ねたものに対する回避策だと信じています。 –

16

いいえ、私はこのようなことをすることはできませんと考えています 意図インテント=新しいインテント(this、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

私はこれを次のように試しました: '' '@Override protected void onNewIntent(Intent intent){ super.onNewIntent(intent); if(int。getStringExtra( "methodName")。equals( "drawOnJupiter")){ this.drawView.drawOnJupiter(); } } '' ' 運がない – kinghenry14

+0

これはonNewIntent()を呼び出していません。アクティビティが開始されます。 – Imeshke

+0

@Imeshkeここで同じ問題が発生しましたが、修正がありましたか? –

0

をコールする方法を決定することができますこの問題はonNewIntentの代わりにonCreateを使用しています。

活動A:

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()からそのメソッドを起動しています。

関連する問題