如何启动新活动并在该活动中启动方法

时间:2017-05-18 14:50:58

标签: java android

所以我在android studio中使用Java,我想从另一个班级开始一个新班级(我在ListenerServiceFromWear并且想要开始MainActivity)和启动Mainactivity后,我想在startEmergencyMode();中启动一个方法(Mainactivity)。

如何从ListenerServiceFromWear执行此操作?

2 个答案:

答案 0 :(得分:1)

以意图开始MainActivity并在意图的额外部分放置一些标志,告诉MainActivity致电startMergencyMode()

Intent intent = new Intent(this, Mainactivity.class);
intent.putExtra("isEmergency", true);
startActivity(intent);

然后在Mainactivity实际调用startEmergencyMode()

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...

    Intent intent = getIntent();
    boolean isEmergency = intent.getBooleanExtra("isEmergency", false);

    if(isEmergency){
        startEmergencyMode();
    }
}

答案 1 :(得分:0)

我不太明白你的意思"开始"

在java中,您可以:

  • 声明static字段或方法
  • 创建对象的实例并使用其public字段和方法。

如果您希望只有一个'实例' MainActivity的{​​{1}},使用静态方法:

public static void startEmergencyMode() {
    // Code here
}

您可以使用MainActivity.startEmergencyMode()在任何地方拨打电话。 请记住,此静态方法只能访问静态字段和其他静态方法。

如果您想创建MainActivity的实例,只需创建一个并调用方法:

public void startEmergencyMode() {
    // Code here
}


// Somewhere else
MainActivity activity = new MainActivity();
activity.startEmergencyMode();

如果您不了解静态和非静态方法或字段之间的区别,请参阅此主题的答案:What does 'public static void' mean in Java?