onActivityResult的在实际开发中的运用

2017-06-28  本文已影响0人  杰克船长爱萝莉

今天为大家详解一下在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。祝大家学习愉快,本文章不足之处,望多多交流。本人新手勿喷。。。。。

上一篇 下一篇

猜你喜欢

热点阅读