私は既存のアクティビティの1つを開始し、アクティビティを開始した後で特定のメソッドを呼び出すようにしたいと思います。Android New Intent特定のメソッドを開始
これは可能ですか?
私の意図内でアクティビティを作成した後に呼び出すメソッドを定義できますか?例えば
のようなもの:私は、次のリンクはあなたを助けるだろうと思い
Intent intent = new Intent(this, com.app.max.Home.class.myMethod);
私は既存のアクティビティの1つを開始し、アクティビティを開始した後で特定のメソッドを呼び出すようにしたいと思います。Android New Intent特定のメソッドを開始
これは可能ですか?
私の意図内でアクティビティを作成した後に呼び出すメソッドを定義できますか?例えば
のようなもの:私は、次のリンクはあなたを助けるだろうと思い
Intent intent = new Intent(this, com.app.max.Home.class.myMethod);
ありがとうございます。アクティビティを切り替える方法を理解していますが、アクティビティをターゲットにするときに特定のメソッドをターゲットにできるかどうかは疑問です。 – Somk
Lukapはそれに答えており、私はそれがあなたが尋ねたものに対する回避策だと信じています。 –
いいえ、私はこのようなことをすることはできませんと考えています 意図インテント=新しいインテント(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();
}
}
私はこれを次のように試しました: '' '@Override protected void onNewIntent(Intent intent){ super.onNewIntent(intent); if(int。getStringExtra( "methodName")。equals( "drawOnJupiter")){ this.drawView.drawOnJupiter(); } } '' ' 運がない – kinghenry14
これはonNewIntent()を呼び出していません。アクティビティが開始されます。 – Imeshke
@Imeshkeここで同じ問題が発生しましたが、修正がありましたか? –
をコールする方法を決定することができますこの問題は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!
}
}
}
希望このソリューションは、あなたの問題を解決
あなたの質問は面白いようだが、方法はありませんあなたはIntent
を使ってそれを行うことができます。アクティビティを開始するときには、ライフサイクルが、onCreate()
- >onStart()
- >OnResume()
であることを理解する必要があります。私は助けるためにしようとしている
@Override
protected void onResume() {
super.onResume();
myMethod();//start your method from here
}
この方法で問題が解決しない場合は、私にあなたの問題についてのいくつかのより多くの情報を与える:だから何を行うことができ、このようなonResume()
からそのメソッドを起動しています。
さらに詳しい説明が必要です。 –
アクティビティを作成し、インテントで開始します。 http://goo.gl/tWsyM – user999717
私は詳細を追加しました。多分私は間違った用語を使用しています。私はインテントを使ってあるアクティビティから別のアクティビティに移動しています。あれは正しいですか? – Somk