2014-01-05 58 views
1
Intent intent = new Intent(Intent.ACTION_PICK, null); 
intent.setType("image/*"); 
startActivityForResult(intent, TServiceInfo.ACTIVITY_PICSELECTED); 

像上面的一些代碼一樣,Activity將跳轉到系統庫。 但會啓動活動運行TServiceInfo.class或不?一些問題ablout startActivityForResult()

TServiceInfo.ACTIVITY_PICSELECTED等於4,我可以寫這個startActivityForResult(intent, 4);什麼是它們之間的區別?

(TServiceInfo.class是客戶機和服務器之間的連接級)

回答

2

沒有區別。請確保您在使用onActivityResult()一樣requestCode

1

TServiceInfo.ACTIVITY_PICSELECTED當你有多個事情要做時onActivityResult方法很有用!

這也取決於很多事情,如果你希望視頻應該在gallery /或音頻中查看,那麼你可以設置2個更多的整型變量,如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)可以預測哪些代碼應該是執行!

+0

感謝您的有用重播 – user3151261

+0

有哪些用於連接到服務器,並在TServerInfo.class從服務器獲取結果的一些靜態方法。我想知道是否將它(startActivityResult(意向,TServiceInfo.ACTIVITY_PICSELECTED);)運行這些方法。因爲我無法找到調用這些方法的代碼。 – user3151261

+0

如果是延伸異步任務那麼它使用充氣'新TServerInfo()執行(「」)後臺線程;' –