Android layout 如何在android中关闭来自父级的所有子活动

Android layout 如何在android中关闭来自父级的所有子活动,android-layout,android,Android Layout,Android,我不熟悉安卓系统。实际上,一个处理程序每30秒在主活动A中运行一次,以检查网络连接 如果我通过A->B->C进入活动C,如果当时没有网络连接,那么我想关闭活动B和C,然后想在活动A中显示消息框 但我的问题是,我的处理程序在主活动A中每30秒运行一次。但如果我在活动C或其他活动中,如何找到我的应用程序当前关注的活动。然后我想完成这些儿童活动,并想展示家庭活动A我在活动B中有9个儿童活动 我听说过使用FLAG\u ACTIVITY\u CLEAR\u TOP。我在Home活动A本身的处理程序中使用了

我不熟悉安卓系统。实际上,一个处理程序每30秒在主活动A中运行一次,以检查网络连接

如果我通过A->B->C进入活动C,如果当时没有网络连接,那么我想关闭活动B和C,然后想在活动A中显示消息框

但我的问题是,我的处理程序在主活动A中每30秒运行一次。但如果我在活动C或其他活动中,如何找到我的应用程序当前关注的活动。然后我想完成这些儿童活动,并想展示家庭活动A我在活动B中有9个儿童活动

我听说过使用FLAG\u ACTIVITY\u CLEAR\u TOP。我在Home活动A本身的处理程序中使用了如下代码。但我犯了个错误

        Intent intent = new Intent( ctx, Homepage.class );    
        intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | 
             Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    ctx.startActivity( intent );
这里Homepage.class是我的家庭活动A,我在清单文件中将该活动设置为

    android:launchMode="singleTop"    

请帮忙

调用活动C时,在活动B中调用finish;从C中调用活动A时,在活动C中调用finish

根据我的说法,你可以用两种方法

如果使用startActivityForResult启动活动,则在完成此新活动后,可以在此新活动中调用finish,它将返回对启动它的活动的控制

否则,也许我错了

在onStop“override method”内调用finish。

为关闭子活动生成统一的结果代码。你的结果代码应该是int。如果希望活动完成并直接返回到父活动,请将resultCode设置为911:

setResult911;完成


在每个子活动中,您都会覆盖onActivityResult,并检查resultCode是否为911。如果是,则调用setResult911;完成直到你回到你的家长活动。希望这有帮助

您可以启动活动A并关闭所有其他活动。 您必须创建新的意图,并将标志添加到活动顶部


Intent activityA = new Intent(context, ActivityA.class);
activityA.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.StartActivity(activityA);

这将关闭堆栈中位于活动A顶部的所有活动。例如,如果要启动intentB,可以在旧活动中执行以下操作: 意向意向TB=新意向; intentB.setClassXYZ.this,abc.class; intentB.setFlagsInt.FLAG\u活动\u清除\u顶部; startactivitytentb;

很抱歉,根据我的任务,我不能这样做,如果我按“上一步”按钮,它应该到B,应该到A。如果我在活动C中,并且当时网络连接被禁用,那么我想在后台显示活动A的消息。不,实际上,on处理程序在活动A中每隔30秒运行一次,以检查网络连接。如果我在活动C中,如果没有网络连接,那么我想关闭活动B和C,然后想在活动A中显示消息框。但我的问题是我的处理程序无法找到现在关注的活动。为什么你在3小时内发布了3次相同的问题?如果您对问题的答案有疑问,只需在评论中添加一个问题,他会要求您停止儿童活动