找到一种方法来完成一项活动而不等待它完成,这让我有点痛苦。我知道一个简单的“回报”;声明会解决问题,但在我的架构中我做不到。
我目前有:
public abstract class BaseFragmentActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
finish();
return;
}
}
}
和
public class MainActivity extends BaseFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* code still executed here even when parent finish(); is called */
}
}
调用抽象类中的 finish() 后,如何防止 MainActivity 中的代码执行?
更新代码:
public abstract class BaseFragmentActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
finish();
return;
}
}
}
public class MainActivity extends BaseFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isFinishing()) {
return;
}
}
}
奇怪的是,“返回”似乎有效,但我的 FragmentManager 在最后以某种方式启动了片段。