我知道如何从其他类调用方法,但在这种情况下似乎不起作用。我可能会记错了,但是我尝试了几件事,但都没有奏效。以下是相关的简化代码:

MainActivity.java:

private void getForecast(final GPSTracker gpsTracker) {
             // something
}


GPSTracker.java:

@Override
public void onLocationChanged(Location location) {
            // call getForecast() here
}


我基本上想做的是,一旦用户启用位置信息,就可以获取预测数据。现在,在启动应用程序时,检测到该位置已禁用,将用户定向到“设置”以启用该位置,但是在用户启用该位置并返回到该应用程序后,没有任何更改。应用程序不了解位置已更改,因此我假设要使用onLocationChanged()。如果需要,我可以提供其余代码。提前致谢。

最佳答案

首先,您需要注意getForecast方法的Access Modifier。您不能从另一个Java类调用getForecast()。

编辑:
您需要将访问修饰符从私有更改为公共:

public void getForecast(final GPSTracker gpsTracker) {
             // something
}


另外,请确保调用函数requestLocationUpdates

07-27 13:46