在Android和loop中的活动之间切换

在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_

如下图所示,我有两项活动

“活动1”开始“活动2”

在步骤3中,当我按下后退按钮时,“活动2”出现!事实上,当我在活动中按下后退按钮(在第2步和第3步之间)时,会发生一个无限循环

我不喜欢超控后退按钮,但似乎我必须这么做

我怎样才能修好它

更新

步骤1:

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覆盖它们都不需要。