dun*_*lli 3 android activity-finish android-activity
我有3个活动A,B和C. A导致B导致C.我希望能够在A和B之间来回移动但是我想在C开始后完成A和B. 我知道如何通过意图启动C时关闭B但是如何在C启动时关闭A?
Gra*_*eme 13
在您的onCreate()方法中,将静态实例分配给变量以创建Singleton:
public static ActivityA instance = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance = this;
}
@Override
public void finish() {
super.finish();
instance = null;
}
Run Code Online (Sandbox Code Playgroud)
然后在C:
public void onCreate(Bundle savedInstanceState) {
if(ActivityA.instance != null) {
try {
ActivityA.instance.finish();
} catch (Exception e) {}
}
}
Run Code Online (Sandbox Code Playgroud)
(重复以上代码为B和A)
我会说这不优雅,必然会引入奇怪的生命周期错误.
如果你可以调整你的要求会更好 - 如果你不能,你可以使用一个活动并将A,B和C改为Fragments?
我会建议广播,但据我所知,你不能在"非恢复"活动上有实例级广播接收器.
使用a Service绑定到活动似乎有点矫枉过正 - 但你可能想要考虑如果上述方法不起作用.
祝好运!