Существующие ответы (данные Intent
передаются в startActivity()
) показывают нормальный способ решения этой проблемы. Есть еще одно решение, которое можно использовать в нечетном случае, когда вы создаете действие, которое будет запущено другим приложением (например, одним из действий редактирования в плагине Tasker ), и, следовательно, не управляете тем, Intent
которое запускает Activity
.
Вы можете создать базовый класс Activity
, имеющий конструктор с параметром, а затем производный класс, имеющий конструктор по умолчанию, который вызывает конструктор базового класса со значением, как показано ниже:
class BaseActivity extends Activity
{
public BaseActivity(String param)
{
// Do something with param
}
}
class DerivedActivity extends BaseActivity
{
public DerivedActivity()
{
super("parameter");
}
}
Если вам нужно сгенерировать параметр для передачи конструктору базового класса, просто замените жестко запрограммированное значение на вызов функции, который возвращает правильное значение для передачи.