1.Ability繼承自BaseAbility,在BaseAbility中維護Ability目前展示的AbilitySlice執行個體:
public class BaseAbility extends Ability {
private AbilitySlice slice;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(BaseAbilitySlice.class.getName());
}
private void setCurrentSlice(AbilitySlice slice) {
this.slice = slice;
}
private AbilitySlice getCurrentSlice() {
return slice;
}
}
2.AbilitySlice中,将自身傳遞給Ability:
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_news_detail_layout);
if (getAbility() instanceof BaseAbility) {
BaseAbility ability = (BaseAbility)getAbility();
ability.setCurrentSlice(this);
}
}