如何通过在android中使用移动后退按钮来完成Acitivity?

问题描述:

在我的示例应用程序中,我有两个名为FirstActivitySecondActivity的活动。从SecondActivity我想通过使用移动后退按钮通过意图传递一些数据,在这里我也想完成SecondActivity,但当我按下我的SecondActivity后退按钮,它让我回到我的FirstActivity,但它没有完成SecondActivity。请帮助我,我该如何完成SecondActivity如何通过在android中使用移动后退按钮来完成Acitivity?

public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if ((keyCode == KeyEvent.KEYCODE_BACK)) 
     { 
      Intent intent = new Intent(SecondActivity.this,FirstActivity.class); 
      //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

      intent.putExtra("Data1", data1); 
      intent.putExtra("Data2", data2); 

      startActivity(intent); 
      finish(); 
     } 
     return true; 
    } 
+0

我认为这是finishActivity();并没有完成(); – Rudy

+0

SecondActivity.this.finish(); – duggu

+0

其“完成()”只。所以OP就在这里。 –

在FirstActivity使用startActivityForResult,并在完成第二个之前,使用setResult方法。

@Override 
public void onBackPressed() { 
     super.onBackPressed(); 
     this.finish(); 
} 

你应该看看startActivityForResult()的文档,这是正确的方式来做你正在做的事情。

但是,在上面的例子中,SecondActivity.this.finish()应该工作。

也许这个作品:

// Back Button Press 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      Intent intent = new Intent(SecondActivity.this,FirstActivity.class); 
       //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

       intent.putExtra("Data1", data1); 
       intent.putExtra("Data2", data2); 

       startActivity(intent); 
       SecondActivity.this.finish(); 
       return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    }