我有一个A类,它通过startActivityForResult
传递Intent
来运行活动。在其他课程中,让我们说B我得到这个Intent
并通过它重新创建活动。我该如何收听该活动的活动,例如为结果启动的活动正在运行,用户按下“后退”按钮,所以我想做一些动作。
我怎样才能做到这一点?
提前谢谢你。
我重新创建对象实例的活动不是从Activity类派生的。这只是ACTIVITY。所以我只有对象。有什么方法可以用类的实例而不是类来做这些事情吗?
答案 0 :(得分:22)
您应该覆盖Activity
类的方法:onBackPressed()
。
答案 1 :(得分:4)
在您要对“后退”按钮执行操作的活动中,只需覆盖onKeyDown
(或onKeyUp
)方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//do whatever you need for the hardware 'back' button
return true;
}
return super.onKeyDown(keyCode, event);
}
请注意,如果您希望“后退”键仍然可以结束您的活动,那么您需要包含
setResult(result); //if you want to pass a result to activity A
finish();
在return true;
答案 2 :(得分:1)
您可以覆盖onDestroy
并将代码放在那里。
另一种可能性(可能更符合您的需求)是覆盖onBackPressed
。