我有4项活动1.Home,2.B,3.C和4.D.每当我从活动D开始回家时,我想完成所有其他活动。我使用了这段代码,但当我从Home按回按钮时,它会将我带到上一个活动。我在这里做错了什么。?
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent)
答案 0 :(得分:2)
你可以试试这个,
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
注意:如FLAG_ACTIVITY_CLEAR_TOP文档中所述
此启动模式也可以与FLAG_ACTIVITY_NEW_TASK结合使用:如果用于启动任务的根活动,它会将该任务的任何当前运行的实例带到前台,然后将其清除到其根目录州。这在从通知管理器启动活动时尤其有用。
答案 1 :(得分:1)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这仅适用于仍在活动堆栈中的活动。我相信你在去B时正在完成家庭活动。所以CLEARTOP
将不起作用。
现在尝试这样的事情。
您需要在Home中设置额外的“D”意图。然后你必须在Home中检查Intent extra,如果额外匹配则调用finish()
Intent intent = new Intent(contxt, Home.class);
intent.putExtra("urString",defaultvalue);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
// Checking the intent extra at "HOME"
if(getIntent().hasExtra("urString")){
// manage your own way
finish();
}
答案 2 :(得分:-1)
在manifest.xml文件中为所有活动设置android:nohistroy =“true”