这是我想要做的事情:
活动正在运行
活动A开始活动B
活动B正在运行
活动A在活动B中关闭
活动A重新启动
答案 0 :(得分:0)
我会在活动A 中使用BroadcastReceiver
并从活动B 发送广播(或从您想要完成的地方活动A )。
public class ActivityA extends Activity {
private FinishReceiver finishReceiver;
public static final String ACTION_FINISH =
"com.mypackage.ActivityA.ACTION_FINISH";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finishReceiver= new FinishReceiver();
registerReceiver(finishReceiver, new IntentFilter(ACTION_FINISH));
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(finishReceiver);
}
private final class FinishReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_FINISH))
finish();
}
}
}
通过致电
关闭activityB.sendBroadcast(new Intent(ActivityA.ACTION_FINISH));
这与this example中的基本相同。
答案 1 :(得分:0)
活动A在活动B中关闭
如果您的意思是活动A暂停并停止,那么在活动B运行时总会发生这种情况。如果你的意思是活动A被摧毁,那么它可能会在任何时候进入后台,而你完全无法控制它。您应该编写您的活动,以便用户在后台销毁它们时完全不知道。这就是“不要保持活动”开发者选项的用途。你的程序应该完全打开它。唯一的结果就是在不断重新加载持久状态的活动中,CPU和电池的使用量会略有增加。