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);
}
}