我是android的新手。我按下按钮时遇到问题。
如果我使用完成特定视图被破坏。下次我按后退按钮,应用程序结束。 我需要使用后退按钮进行控制导航
例如这些是我的活动A,B,C,D
我的流程应该是
从活动A到B到C到D到A
用户可以在D到A之间导航
但是当用户从D导航到A
时 如果他按下后退按钮再次
它不应导航到任何其他活动
请帮忙
答案 0 :(得分:1)
您想从D导航到活动A.因此,您可以从D调用活动A,如下所示
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //clears B and C from stack.
startActivity(intent);
答案 1 :(得分:0)
我希望活动在后退时保持其状态,只是在开始其他活动之前不要调用finish()方法。鉴于清单文件中没有条目android:noHistory="true"
,Android会在按下后退按钮时处理上一个活动
答案 2 :(得分:0)
只需覆盖
即可@Override
public void onBackPressed() {
super.onBackPressed();//comment this if you want to implement your own logic
//Do whatever you like
}
在您的A活动上启动D活动。
答案 3 :(得分:0)
在D覆盖onBackPress
@Override
public void onBackPressed()
{
super.onBackPressed();
Intent i = new Intent(this, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
答案 4 :(得分:0)
试试这个 只需在活动A中输入相同的内容,无需更改
@覆盖 public void onBackPressed(){
}
答案 5 :(得分:0)
每当从另一个活动调用活动时,调用活动将根据活动生命周期进入堆栈。当您从A移动到B时,A存储到堆栈中,B打开。当你按下按钮时,你想要(A到B到C到D到A),(D到A或反之)但不是从B到A或C到B或D到C或A到D.
当你从B调用活动C时,也可以调用finish()来销毁B,同样当你从C调用D来销毁C以便你不能后退时。这会限制你的流量。
A类扩展了活动{
//按钮单击
Intent intent=new Intent(A.this,B.class);
startactivity(intent);
}
B类扩展了活动{
//按钮单击
Intent intent=new Intent(B.this,C.class);
startactivity(intent);
finish();
}
C类扩展了活动{
//按钮单击
Intent intent=new Intent(C.this,D.class);
startactivity(intent);
finish();
}
D类扩展了活动{
//按钮单击
Intent intent=new Intent(D.this,A.class);
startactivity(intent);
}
这样当你从A到B时 - > A存储在堆栈中,B至C - > B被破坏(使用完成),C至D - > C被破坏,您可以使用后退按钮直接从D到A.如果在从D到A之后再次按下后退按钮,它将进入D,再次按下它将进入A(第一个活动已启动。)然后再次按下后App将结束。