2011-07-19 131 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永远不会被调用。