在Android和loop中的活动之间切换
如下图所示,我有两项活动 “活动1”开始“活动2” 在步骤3中,当我按下后退按钮时,“活动2”出现!事实上,当我在活动中按下后退按钮(在第2步和第3步之间)时,会发生一个无限循环 我不喜欢超控后退按钮,但似乎我必须这么做 我怎样才能修好它 更新: 步骤1:在Android和loop中的活动之间切换,android,android-intent,android-activity,Android,Android Intent,Android Activity,如下图所示,我有两项活动 “活动1”开始“活动2” 在步骤3中,当我按下后退按钮时,“活动2”出现!事实上,当我在活动中按下后退按钮(在第2步和第3步之间)时,会发生一个无限循环 我不喜欢超控后退按钮,但似乎我必须这么做 我怎样才能修好它 更新: 步骤1: Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class); Game_Activity.setFlags(Intent.FLAG_ACTIVITY_
Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class);
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Game_Activity);
步骤2:
@Override
public void onBackPressed()
{
//Return to Menu Activity
Intent Sec_Activity = new Intent(SecondActivity.this, FirstActivity.class);
startActivity(Sec_Activity);
}
步骤3:
@Override
public void onBackPressed()
{
finish();
}
呼叫
活动1
至活动2
Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
finish();
}
在活动2中
Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
finish();
}
删除“重新排序到前”标志,这不是必需的。。。如果应用程序未被销毁,则恢复时会恢复当前活动。这将恢复正常的后退按钮行为和活动顺序 如果要保持应用程序的当前状态(即使已从内存中删除),请查看
这将是一个很好的起点。在您的第一个
活动中
步骤1:
Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class);
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Game_Activity);
finish();
在活动一之后添加完成
Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class);
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Game_Activity);
Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class);
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Game_Activity);
finish();
活动二
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
public void onBackPressed() {
Intent i= new Intent(secondActivity.this, FirsActivity.class);
startActivity(i);
finish()
}
或
活动一
Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class);
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Game_Activity);
Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class);
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(Game_Activity);
finish();
活动二
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
public void onBackPressed() {
Intent i= new Intent(secondActivity.this, FirsActivity.class);
startActivity(i);
finish()
}
我最近遇到了同样的问题。将此添加到Activity1中对我很有用
public void onBackPressed() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
如果有一些代码,这个问题将真正受益。没有真正的代码和一张图片就很难调试;)finish()活动2 onbackpress()只需调用
finish()代码>之后<代码>开始触觉(意图)代码>正如我的回答所说,基本错误是使用意图。将活动重新排序到前面。。。解决方法是不使用它。发布您的清单。如果您按照@Raanan删除Intent.FLAG\u ACTIVITY\u REORDER\u TO \u FRONT
,并删除onBackPressed()
的所有覆盖,这应该可以根据需要工作。你一定是做了什么奇怪的事。她不想超越后座按钮!!实际上,您不需要覆盖“后退”按钮-默认行为是完成当前活动。这并不能解决问题,因为她正在使用“重新排序到前面”标志。我删除了“活动”标志“重新排序到前面”,但活动没有继续@杰西卡,我建议你更新这个问题,增加一些关于你正在做什么的细节。。。恢复当前活动是Android的一项基本功能。是否您在清单中定义了一些关于第二个活动的标志?或者您正在某处调用finish?您需要删除标志\u ACTIVITY\u REORDER\u to\u FRONT标志,还需要删除onBackPressed覆盖它们都不需要。