Android New Intent запускает особый метод
Я хочу запустить один из моих существующих действий и заставить действие вызвать конкретный метод после его запуска.
Возможно ли это?
Можно ли определить метод, который должен быть вызван после создания активности внутри моего намерения?
Например, что-то вроде:
Intent intent = new Intent(this, com.app.max.Home.class.myMethod);
Ответы
Ответ 1
Нет, я не думаю, что у вас может быть что-то вроде этого
Intent intent = new Intent (это, 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();
}
}
Ответ 2
Я думаю, что следующая ссылка вам поможет. переключение между действиями
Ответ 3
Я решаю эту проблему, используя onCreate
вместо onNewIntent
.
Действие 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!
}
}
}
Надеемся, что это решение решит вашу проблему.
Ответ 4
Ваш вопрос кажется интересным, но вы не можете сделать это, используя Intent
. Вы должны понимать, что когда вы начинаете деятельность, она проходит жизненный цикл, который: onCreate()
→ onStart()
- >OnResume()
. Итак, что вы можете сделать, это запустить этот метод из onResume()
следующим образом:
@Override
protected void onResume() {
super.onResume();
myMethod();//start your method from here
}
Я просто пытаюсь помочь, дайте мне дополнительную информацию о вашей проблеме, если этот подход не решит вашу проблему.