0

在我的示例应用程序中,我有两个名为FirstActivity和的活动SecondActivity。从SecondActivity我想通过使用移动后退按钮通过意图传递一些数据,在这里我也想完成SecondActivity,但是当我按下我的后退按钮时SecondActivity,它让我回到我的FirstActivity,但它没有完成SecondActivity。请帮助我,我怎样才能完成SecondActivity.

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;
     }
4

4 回答 4

1

在第一个活动中使用startActivityForResult,在完成第二个活动之前,使用setResult方法。

于 2013-02-05T10:41:25.823 回答
0
@Override
public void onBackPressed() {
        super.onBackPressed();
        this.finish();
}
于 2013-02-05T10:41:50.773 回答
0

您应该查看startActivityForResult()的文档,这是执行您正在做的事情的正确方法。

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

于 2013-02-05T10:42:49.270 回答
0

也许这有效:

// 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);
    }
于 2013-02-05T12:30:03.200 回答