我是新来的Android开发人员。我按下后退按钮时遇到问题。Android中的后退按钮导航
如果我使用完成特定视图被破坏。下次按下后退按钮,应用程序结束。 我需要与后退按钮
控制的导航例如这是我的活动A,B,C,d
我的流量应
从活动A到B到C到d至A
和用户可以d之间导航到一个
,但是当他的用户从d导航到
再次按下后退按钮
它不应该导航到任何其他活动
请帮
我是新来的Android开发人员。我按下后退按钮时遇到问题。Android中的后退按钮导航
如果我使用完成特定视图被破坏。下次按下后退按钮,应用程序结束。 我需要与后退按钮
控制的导航例如这是我的活动A,B,C,d
我的流量应
从活动A到B到C到d至A
和用户可以d之间导航到一个
,但是当他的用户从d导航到
再次按下后退按钮
它不应该导航到任何其他活动
请帮
我想要一个活动保持其背部按下状态刚刚开始之前不调用完成()方法其他活动。 Android将照顾采取以前的活动时,你会按后退按钮,因为没有在清单文件中没有条目android:noHistory="true"
你的一个活动就覆盖
@Override
public void onBackPressed() {
super.onBackPressed();//comment this if you want to implement your own logic
//Do whatever you like
}
,并开始d活动。
在d覆盖onBackPress
@Override
public void onBackPressed()
{
super.onBackPressed();
Intent i = new Intent(this, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
要从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);
试试这个 只需键入此在活动A相同,没什么可改变
@Override public void onBackPressed(){
}
无论何时从其他活动调用活动,调用活动都会根据活动生命周期进入堆栈。当你从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(首先启动的活动),然后再次按下后,应用程序将结束。