Android活动堆栈和后退功能问题

时间:2011-07-08 07:00:34

标签: android android-activity stack back

我有四个活动,A,B,C和D. app以活动A开始,然后通过使用显式打算转到B,然后使用C然后以相同方式转到D.从D,如果我想直接回到B或A,它是如何做到的?

2 个答案:

答案 0 :(得分:3)

例如,在C中。如果在用户按下活动D中的后退按钮发送活动D的意图后调用finish(),则她/他将被发送到活动A或B,具体取决于您开始活动的位置C。 另一种方法是将标志设置为清除顶部,如下所示:

Intent intent  = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);        
startActivity(intent);

最简单的方法是根据您希望应用中的流量调用finish()。

答案 1 :(得分:0)

活动A中的

  

public void onCreate()
  {   //当你想开始新的活动时   startActivity(意向); //开始活动到B
    }

活动B中的

  

public void onCreate()
       {
  //当你想开始新的活动时   startActivityForResult(intent,10 //任何代码值); //开始活动到c
   }
  protected void onActivityResult(int requestCode,int resultCode,Intent data)
          {
          如果(resultCode为== 25)
          {
             光洁度();
          }
  }

活动C中的

  

public void onCreate()
       {
  //当你想回到Actitvity A
时   的setResult(25);
  光洁度();
    }

解释

1)在活动“A”中,您将一个新活动开始为“B” 2)在“B”活动中,使用startActivityForResult方法将一个活动开始为“C” 3)在“C”活动中,当你完成时,它显然会进入“B”活动,结果代码是你设置的。如果匹配,它将关闭“B”活动,并转到“A”活动

4)这是跳过一个或多个活动的一个简单技巧