关于startActivityForResult()的一些问题

时间:2014-01-05 03:45:53

标签: android start-activity

Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setType("image/*"); 
startActivityForResult(intent, TServiceInfo.ACTIVITY_PICSELECTED);

与上面的一些代码一样,Activity将跳转到系统库。  但是startActivity会不会运行TServiceInfo.class?

TServiceInfo.ACTIVITY_PICSELECTED等于4,我可以写一下startActivityForResult(intent, 4);它们之间的区别是什么?

(TServiceInfo.class是客户端和服务器之间的连接类)

2 个答案:

答案 0 :(得分:2)

没有区别。请务必使用与requestCode中的onActivityResult()相同的内容。

答案 1 :(得分:1)

当您在 onActivityResult 方法中有多个要做的事情时,

TServiceInfo.ACTIVITY_PICSELECTED非常有用!

这也取决于许多事情,例如,如果你想要在图库/音频中查看视频,那么你可以设置另外两个整数变量,如ACTIVITY_VIDEO_SELECTED,ACTIVITY_AUDIO_SELECTED!

您可以拥有许多

的实例
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setType("video/*"); 
startActivityResult(intent, TServiceInfo.ACTIVITY_VIDEO_SELECTED);

或者

Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setType("audio/*"); 
startActivityResult(intent, TServiceInfo.ACTIVITY_AUDIO_SELECTED);

但是你只能拥有 onActivityResult 一个实例!因此,在此方法中,您可以使用这些值来预测从哪个实例调用它:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

      if (requestCode == TServiceInfo.ACTIVITY_PICSELECTED && resultCode == RESULT_OK &&null != data)
      {

                // do something here
      }
      if (requestCode == TServiceInfo.ACTIVITY_VIDEO_SELECTED && resultCode == RESULT_OK &&null != data)
      {
                 // do something here

      }
      if (requestCode == TServiceInfo.ACTIVITY_AUDIO_SELECTED && resultCode == RESULT_OK &&null != data)
      {
                 // do something here

      }
}

因此,通过维护这些变量的值(ACTIVITY_PICSELECTEDACTIVITY_VIDEO_SELECTEDACTIVITY_AUDIO_SELECTED)您可以预测应该执行哪些代码!