我有 3 个活动 A、B 和 C。A 导致 B,B 再导致 C。我希望能够在 A 和 B 之间来回移动,但我希望一旦 C 开始就完成 A 和 B。我了解如何通过意图启动 C 时关闭 B,但是当 C 启动时如何关闭 A?
In your onCreate()
方法将静态实例分配给变量以创建单例:
public static ActivityA instance = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance = this;
}
@Override
public void finish() {
super.finish();
instance = null;
}
然后在C中:
public void onCreate(Bundle savedInstanceState) {
if(ActivityA.instance != null) {
try {
ActivityA.instance.finish();
} catch (Exception e) {}
}
}
(对 B 和 A 重复上述代码)
我想说这并不优雅,并且必然会引入奇怪的生命周期错误。
如果您可以调整您的要求,那就更好了 - 如果您不能,您也许可以使用单个 Activity 并将 A、B 和 C 更改为Fragments
?
我本来建议使用广播,但据我了解,您不能在“未恢复”活动上拥有实例级广播接收器。
Using a Service
绑定到“活动”似乎有点矫枉过正 - 但如果上述方法不起作用,您可能需要考虑这一点。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)