2011-07-19 58 views
1

當我啓動我的應用程序時,我正在顯示啓動畫面。該頁面已顯示10秒,在一個線程上運行。當它切換到新的活動結果時,我想在服務器中打一個url,我將得到一個返回值,我可以用它來進一步實現。onActivityResult在Android中未調用

以下是我的代碼

private final int SPLASH_DISPLAY_LENGHT = 1000; 

new Handler().postDelayed(new Runnable() 
     { 
      @Override 
      public void run() 
      { 
       Log.e("Handler ","run"); 
       Intent myIntent = new Intent(getApplicationContext(), CaptureActivity.class); 
       startActivityForResult(myIntent, imgDL); 
       finish(); 
      } 
     }, SPLASH_DISPLAY_LENGHT); 



public void onActivityResult(int requestCode, int resultCode, final Intent data) 
     { 
      super.onActivityResult(requestCode, resultCode, data); 
      if (requestCode == imgDL) 
      {  
       Log.e("onActivity Result",""); 
       urlHitMethod("http://XXXXXXXXXXXXXXXXXX.com/banner_scan"); 
      } 
     } 

但這裏的onActivty結果不被調用,如何使它得到落實....

+0

你爲什麼要完成你的來電者活動? –

+0

在我的下一個活動,當用戶點擊後退按鈕,我想讓應用程序關閉.... –

+0

當你使用完成,那麼它將永遠不會進入onActivityResult,因此刪除它 –

回答

0

在CaptureActivity.class你必須設置的結果,然後在onActivityResult中的第一個活動檢查結果代碼

在CaptureActivity.class它應該像如果你正在使用onActivityResult,然後意圖出發否則會崩潰的應用程序時,你不應該完成的活動如下

Intent in = new Intent(); 
    setResult(1,in);//Here I am Setting the Requestcode 1, you can put according to your requirement 
    finish(); 
+0

其實你的評論是錯誤的。您不要設置requestCode,而是設置resultCode。如果我是對的,你可以使用Activity.RESULT_CANCELLED和Activity.RESULT_OK – mDroidd

+0

我的問題是,當你將活動的結果設置爲RESULT_OK時,onActivityResult對等待活動從未被調用過。當我將結果值更改爲1有效。 –

+1

-1。 @mDroidd是正確的 - 你沒有設置'requestCode',你爲'resultCode'傳入一個文字值,它實際上對應於'RESULT_FIRST_USER',而不是'RESULT_OK' – kolosy

1

試試這個

意向myIntent =新意圖(activity.this,CaptureActivity.class);

@Override 
public void onActivityResult(int requestCode, int resultCode, final Intent data) 
     { 
      super.onActivityResult(requestCode, resultCode, data); 
      if (requestCode == imgDL) 
      {  
       Log.e("onActivity Result",""); 
       urlHitMethod("http://XXXXXXXXXXXXXXXXXX.com/banner_scan"); 
      } 
      if(resultCode==RESULT_OK) 
     { 
    Log.e("onActivity Result","come in onactivity result ok"); 

     } 
      else 
      { 
    Log.e("onActivity Result","come in onactivity result with error"); 

     } 



     } 
+0

這不適合我...我也嘗試刪除完成()太... –

+0

當你使用完成,那麼它將永遠不會進來onActivityResult所以刪除它 –

4

另外,請注意,如果您的基礎活動(調用startActivityForResult的那個)不能在清單中使用標誌noHitory,那麼請注意。

如果這樣做,onActivityResult永遠不會被調用。