今天为大家详解一下在android中常常使用的onActivityResult的方法的使用和介绍。下面说下自己的理解:
你可以把他理解成一种异步线程处理机制。我们都知道在做网络请求的时候都是异步请求,获取的返回数据需要更新到主线程去赋值到程序的个个控件。而onActivityResult的方法其实和他一样,只不过是变成了一个A.activity启动跳转到另一个新的B.activity的时候,新的B.activity在摧毁的时候(此时可以返回数据也可以不返回数据)此时A.activity要进行获取B的返回数据刷新页面操作。下面上代码:
A activity中:
startActivityForResult(newIntent(mContext, B.class),requsecode);
startActivityForResult:activity 的一种跳转方式
requsecode:请求码(B用来判断是谁跳转过来,)
B activity中:
Intent intent =new Intent();
intent.putExtra("pathUrl",pathUrl);(键值对,返回给A的数据 也可以为null)
setResult(resultcode, intent);(resultcode)为结果码,你可以理解为返回数据的代号(我想知道谁返回给A的话必须要有这个代号啊,老祖宗抗战还起了个名字呢。。。。),此句话一定要在finish之前调用
finish();(最后destory掉 当前的B activity)
以上代码为B activity的所有干货代码,返回了 A该怎么接受啊,继续向下看。
A activity 复写onActivityResult方法 接受数据并且刷新
@Override
protected void onActivityResult(intrequestCode,intresultCode, Intent data) {
if(resultCode ==2) {
if(requestCode ==10) {
String pathUrl = data.getStringExtra("pathUrl");(获取的返回数据此刻可以为null ,根据你的业务逻辑需要)
if(!StringUtils.isEmpty(pathUrl)) {
//刷新数据,赋值控件,想干嘛就干嘛。
}
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
总结: onActivityResult经常用于拍照获取返回照片等一些场景中,希望大家熟练使用。安卓数据请求都是异步的,要理解好异步一切So easy。祝大家学习愉快,本文章不足之处,望多多交流。本人新手勿喷。。。。。