Siva K
Siva K

Reputation: 4968

Why is onActivityResult not called in Android?

When I my app is launched I am showing a splash screen. That page is been shown for 10 sec, running on a thread.

When it switches over to new activity on a result I want o hit a URL in server and I will be getting a return value which I can use for my further implements.

Here is my code:

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

But here the onActivityResult is not called. How to fix this?

Upvotes: 1

Views: 5335

Answers (4)

Snicolas
Snicolas

Reputation: 38168

Also, please note than if you base activity (the one calling startActivityForResult) can't use the flag noHitory in the manifest.

If you do so, onActivityResult will never be called.

Upvotes: 4

javapluto
javapluto

Reputation: 11

If you are using onActivityResult, then you should not finish the activity when starting with intent otherwise it will crash the app. Thanks.

Upvotes: 1

Shaista Naaz
Shaista Naaz

Reputation: 8321

In the CaptureActivity.class you have to set the result and then check in the onActivityResult in the First Activity the result code

In the CaptureActivity.class it should be like the following

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

Upvotes: 0

Niranj Patel
Niranj Patel

Reputation: 33258

try this

Intent myIntent = new Intent(activity.this, CaptureActivity.class);

and

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

      }



      }

Upvotes: 1

Related Questions