首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

starActivityforResult()函数的调用与响应流程有关问题

2012-07-29 
starActivityforResult()函数的调用与响应流程问题我的APP中要牵扯到调用通信录,选择某个联系人获取其name

starActivityforResult()函数的调用与响应流程问题
我的APP中要牵扯到调用通信录,选择某个联系人获取其name.phoneNum这两个数据。

在我当前的Activity中:
                Intent   intent   =   new   Intent();
                intent.setAction(Intent.ACTION_PICK);
                intent.setData(ContactsContract.Contacts.CONTENT_URI);
                startActivityForResult(intent,   REQUEST_CONTACT);

同时Override   onActivityResult(int   requestCode,   int   resultCode,   Intent   data)在里边实现响应:

                                super.onActivityResult(requestCode,   resultCode,   data);
。。。。。
Log.d( "HH ", "requestCode   =   "+requestCode);
。。。。
                                Log.d( "HH ", "resultCode   =   "+resultCode);
。。。。
OK!可以调用通信录。

但是问题来了:在显示通信录的同时,就看到了Log信息:
requestCode   =   1;
resultCode   =   0;
就是说这时候没有对通信录进行pick_up操作,就已经返回结果了,但是还停留在电话本界面,是没有选择具体的item。

当对具体一个item   点击后,返回APP,但是,这时候没有响应onActivityResult(),只是返回了,log信息没有。

看到很多的介绍,都是说在pick_up操作以后才返回APP,同时响应onActivityResult()。
但是现在有点矛盾啊。

麻烦各位帮忙想一下,谢谢


[解决办法]
RESULT_CANCEL = 0;
RESULT_OK = 1;
你要在code中判断:
if (requestCode == REQUEST_CONTACT && resultCode ==RESULT_OK) {
//do what you want
}

热点排行