1

当我启动我的应用程序时,我正在显示启动画面。该页面显示 10 秒,在线程上运行。

当它切换到结果上的新活动时,我想在服务器中点击一个 URL,我将获得一个返回值,我可以将其用于我的进一步实现。

这是我的代码:

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");
          }
      }

但是这里onActivityResult没有调用。如何解决这个问题?

4

4 回答 4

4

另外,请注意,如果您的基础活动(调用 startActivityForResult 的活动)不能在清单中使用标志 noHitory。

如果你这样做,onActivityResult 将永远不会被调用。

于 2012-06-27T09:15:11.283 回答
1

试试这个

意图 myIntent = new Intent(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"); 

      }



      }
于 2011-07-19T05:00:41.597 回答
1

如果您正在使用 onActivityResult,那么您不应该在意图启动时完成活动,否则会导致应用程序崩溃。谢谢。

于 2011-10-10T07:02:17.543 回答
0

在 CaptureActivity.class 中,您必须设置结果,然后在第一个活动中的 onActivityResult 中检查结果代码

在 CaptureActivity.class 它应该如下所示

 Intent in = new Intent();
    setResult(1,in);//Here I am Setting the Requestcode 1, you can put according to your requirement
    finish();
于 2011-07-19T05:05:35.517 回答