Почему onActivityResult не вызывается в Android? - PullRequest
1 голос
/ 19 июля 2011

Когда я запускаю мое приложение, я показываю заставку. Эта страница показывается в течение 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 голосов
/ 27 июня 2012

Кроме того, обратите внимание, что если базовая активность (вызывающая startActivityForResult) не может использовать флаг noHitory в манифесте.

Если вы это сделаете, onActivityResult никогда не будет вызываться.

1 голос
/ 10 октября 2011

Если вы используете onActivityResult, то не следует завершать действие при запуске с намерением, иначе это приведет к сбою приложения.Спасибо.

1 голос
/ 19 июля 2011

попробуйте

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

      }



      }
0 голосов
/ 19 июля 2011

В 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();
...