我想启动一个现有活动并强制活动在启动后调用特定的方法。Android新意图启动特定方法
这可能吗?
我可以在我的Intent中创建活动后定义一个应该调用的方法吗?
例如像:
Intent intent = new Intent(this, com.app.max.Home.class.myMethod);
我想启动一个现有活动并强制活动在启动后调用特定的方法。Android新意图启动特定方法
这可能吗?
我可以在我的Intent中创建活动后定义一个应该调用的方法吗?
例如像:
Intent intent = new Intent(this, com.app.max.Home.class.myMethod);
我觉得下面的链接会帮助你。 switching between activities
谢谢。我了解如何在活动之间进行切换,我只是想知道在您定位活动时是否可以针对特定的方法。 – Somk
Lukap已经回答了它,我相信这是你所问的解决方法。 – 2011-10-24 14:04:02
不,我不认为你可以有这样的事情 Intent intent = new Intent(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(意图意图){ super.onNewIntent(intent); if(intent。getStringExtra(“methodName”)。equals(“drawOnJupiter”)){ this.drawView.drawOnJupiter(); } }''' 没有运气 – kinghenry14
它没有调用onNewIntent()。但活动开始。 – Imeshke
@Imeshke在这里同样的问题,你找到一个修复它? –
我解决此问题通过使用onCreate
而不是onNewIntent
。
活动答:
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()
。所以你可以做的是从onResume()
这样的启动方法:
@Override
protected void onResume() {
super.onResume();
myMethod();//start your method from here
}
我只是想帮忙,给我你的问题的一些详细信息,如果这种方法没有解决您的问题。
需要更多描述。 –
创建一个活动,并以意图启动它。 http://goo.gl/tWsyM – user999717
我已添加更多信息。也许我正在使用错误的术语。我正在使用意图从一个活动转到另一个活动。那是对的吗? – Somk