我有一個叫做BaseActivity的抽象類(extends Activity),它具有函數Android活動抽象方法調用
public abstract void onLocationChanged();
所有其他活動擴展了這個類。當我調用BaseActivity的方法onLocationChanged()時,我期望所有實現此方法的其他類都會調用它們的onLocationChanged()方法或至少是當前位於堆棧頂部的活動,但似乎只有一個活動會調用方法,它不是堆棧頂部的那個。
有人可以幫忙嗎?
這裏是我的代碼的相關部分:
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*/
}
}
顯示一些代碼。就像你如何調用這個方法一樣。 – 2012-07-27 15:50:39