関数を持つ BaseActivity (Activity を拡張) という抽象クラスがあります。
public abstract void onLocationChanged();
他のすべてのアクティビティは、このクラスを拡張します。BaseActivity のメソッド onLocationChanged() を呼び出すと、このメソッドを実装する他のすべてのクラスが onLocationChanged() メソッドを呼び出すか、少なくとも現在スタックの一番上にあるアクティビティを呼び出すと予想されますが、1 つのアクティビティだけがメソッドであり、スタックの一番上にあるものではありません。
誰か助けてくれませんか?
ここに私のコードの関連部分があります:
abstract class BaseActivity extends FragmentActivity {
public static MyLocation location = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (location == null) {
location = new MyLocation(this);
}
}
public abstract void onLocationChanged();
}
public class MyLocation {
BaseActivity parrent;
public MyLocation(BaseActivity act) {
public MyLocation(BaseActivity act) {
this.parrent = act;
}
public void refreshMyLocation() {
/*location get refreshed here*/
this.parrent.onLocationChanged();
}
}
public class MainActivity extends BaseActivity {
@Override
public void onStart() {
BaseActivity.location.refreshMyLocation();
}
public void onLocationChanged() {
/*some stuff*/
}
}