finishActivity()的正确理解

不能通过finishAcitivity从当前activity关闭另一个activity吗?3

android-sdk-doc中写得很清楚: 

public void finishActivity (int requestCode) 

Force finish another activity that you had previously started with startActivityForResult(Intent, int). 

Parameters 
requestCode  The request code of the activity that you had given to startActivityForResult(). If there are multiple activities started with this request code, they will all be finished.  


就是finishActivity可以关闭通过startActivityForResult启动的另一个activity或一组activity。 


但是经过试验,这个方法并不起效: 
Java代码   收藏代码
  1. Intent intent = new Intent(mainActivity.this, ActivityA.class);  
  2.                 startActivityForResult(intent, 1);  

Java代码   收藏代码
  1. public class ActivityA extends Activity{  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.activity_a);  
  7.         Button activity_a_btn = (Button)findViewById(R.id.activity_a_btn);  
  8.         activity_a_btn.setOnClickListener(new OnClickListener() {  
  9.               
  10.             @Override  
  11.             public void onClick(View v) {  
  12.                 ActivityA.this.finishActivity(1);  
  13.                   
  14.             }  
  15.         });  
  16.     }  
  17.   
  18. }  


在ActivityA中点击按钮,并没有关闭ActivityA。这是android的一个bug? 




你好,你可能误解这个函数的意思了,他的意思应该是这样子的: 
你通过  mainActivity 来启动  ActivityA   (使用  startActivityForResult  方法),那么你在  mainActivity  这个类中需要重写  onActivityResult()  这个方法, 
然后,你可以在  onActivityResult()  中通过  finishActivity()  方法去结束掉  ActivityA   

这个可能是该函数的真正意图,希望能给你一点帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值