【发布时间】:2013-09-04 11:53:44
【问题描述】:
找到一种方法来完成一项活动而不等待它完成,这让我有点痛苦。 我知道一个简单的“回报”;声明可以解决问题,但在我的架构中我做不到。
我目前有:
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 不知何故在最后启动了片段。
【问题讨论】:
-
你是在 MainActivity 中调用 super.onCreate() 吗?
-
是的,我是。这实际上是第一行。我会在问题中更新它。
-
@Tomap 为什么是抽象类?在 if 之前也应该是 .call super。另请查看页面末尾的注释developer.android.com/training/basics/activity-lifecycle/…
-
我有应用程序生命周期所需的抽象父方法。感谢您的“超级”电话,我解决了这个问题。 :)
标签: android android-activity activity-finish