Android startActivityForResult, setResult, onActivityResult not called











up vote
1
down vote

favorite












I started a phone call Activity requesting for result:



    Intent intentcall = new Intent();
intentcall.setAction(Intent.ACTION_CALL);
intentcall.setData(Uri.parse("tel:" + phoneNumber));
this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF);


And then set the result in phone call listener like this:



    private class MyPhoneStateListener extends PhoneStateListener{
public void onCallStateChanged(int state, String incomingNumber) {

super.onCallStateChanged(state, incomingNumber);

switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
setResult(Activity.RESULT_OK);
break;


Finally I want to turn off the icon in onActivityResult, but nothing happens.



    switch (requestCode) {

case REQUEST_SLIPDROP_ICON_OFF:
Log.d("request icon off", "request icon off");

if (resultCode == Activity.RESULT_OK) {

changeMenuItem(R.id.fall, R.drawable.fall);
slipAndDropIconOn = false;

}

break;


Anything wrong? Please advise! thank you










share|improve this question


























    up vote
    1
    down vote

    favorite












    I started a phone call Activity requesting for result:



        Intent intentcall = new Intent();
    intentcall.setAction(Intent.ACTION_CALL);
    intentcall.setData(Uri.parse("tel:" + phoneNumber));
    this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF);


    And then set the result in phone call listener like this:



        private class MyPhoneStateListener extends PhoneStateListener{
    public void onCallStateChanged(int state, String incomingNumber) {

    super.onCallStateChanged(state, incomingNumber);

    switch (state) {
    case TelephonyManager.CALL_STATE_IDLE:
    setResult(Activity.RESULT_OK);
    break;


    Finally I want to turn off the icon in onActivityResult, but nothing happens.



        switch (requestCode) {

    case REQUEST_SLIPDROP_ICON_OFF:
    Log.d("request icon off", "request icon off");

    if (resultCode == Activity.RESULT_OK) {

    changeMenuItem(R.id.fall, R.drawable.fall);
    slipAndDropIconOn = false;

    }

    break;


    Anything wrong? Please advise! thank you










    share|improve this question
























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I started a phone call Activity requesting for result:



          Intent intentcall = new Intent();
      intentcall.setAction(Intent.ACTION_CALL);
      intentcall.setData(Uri.parse("tel:" + phoneNumber));
      this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF);


      And then set the result in phone call listener like this:



          private class MyPhoneStateListener extends PhoneStateListener{
      public void onCallStateChanged(int state, String incomingNumber) {

      super.onCallStateChanged(state, incomingNumber);

      switch (state) {
      case TelephonyManager.CALL_STATE_IDLE:
      setResult(Activity.RESULT_OK);
      break;


      Finally I want to turn off the icon in onActivityResult, but nothing happens.



          switch (requestCode) {

      case REQUEST_SLIPDROP_ICON_OFF:
      Log.d("request icon off", "request icon off");

      if (resultCode == Activity.RESULT_OK) {

      changeMenuItem(R.id.fall, R.drawable.fall);
      slipAndDropIconOn = false;

      }

      break;


      Anything wrong? Please advise! thank you










      share|improve this question













      I started a phone call Activity requesting for result:



          Intent intentcall = new Intent();
      intentcall.setAction(Intent.ACTION_CALL);
      intentcall.setData(Uri.parse("tel:" + phoneNumber));
      this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF);


      And then set the result in phone call listener like this:



          private class MyPhoneStateListener extends PhoneStateListener{
      public void onCallStateChanged(int state, String incomingNumber) {

      super.onCallStateChanged(state, incomingNumber);

      switch (state) {
      case TelephonyManager.CALL_STATE_IDLE:
      setResult(Activity.RESULT_OK);
      break;


      Finally I want to turn off the icon in onActivityResult, but nothing happens.



          switch (requestCode) {

      case REQUEST_SLIPDROP_ICON_OFF:
      Log.d("request icon off", "request icon off");

      if (resultCode == Activity.RESULT_OK) {

      changeMenuItem(R.id.fall, R.drawable.fall);
      slipAndDropIconOn = false;

      }

      break;


      Anything wrong? Please advise! thank you







      android start-activity onactivityresult






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 13 '13 at 14:39









      ksu

      5291716




      5291716
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          4
          down vote



          accepted










          I don't think this action returns a result so calling startActivityForResult is no different to calling startActivity



          Note here: output = None.
          http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL






          share|improve this answer



















          • 1




            I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
            – ksu
            Dec 13 '13 at 14:57












          • ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
            – Kuffs
            Dec 13 '13 at 15:02












          • I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
            – ksu
            Dec 13 '13 at 15:44










          • No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
            – Kuffs
            Dec 13 '13 at 15:46












          • So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
            – ksu
            Dec 13 '13 at 15:56













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f20569089%2fandroid-startactivityforresult-setresult-onactivityresult-not-called%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          4
          down vote



          accepted










          I don't think this action returns a result so calling startActivityForResult is no different to calling startActivity



          Note here: output = None.
          http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL






          share|improve this answer



















          • 1




            I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
            – ksu
            Dec 13 '13 at 14:57












          • ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
            – Kuffs
            Dec 13 '13 at 15:02












          • I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
            – ksu
            Dec 13 '13 at 15:44










          • No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
            – Kuffs
            Dec 13 '13 at 15:46












          • So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
            – ksu
            Dec 13 '13 at 15:56

















          up vote
          4
          down vote



          accepted










          I don't think this action returns a result so calling startActivityForResult is no different to calling startActivity



          Note here: output = None.
          http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL






          share|improve this answer



















          • 1




            I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
            – ksu
            Dec 13 '13 at 14:57












          • ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
            – Kuffs
            Dec 13 '13 at 15:02












          • I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
            – ksu
            Dec 13 '13 at 15:44










          • No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
            – Kuffs
            Dec 13 '13 at 15:46












          • So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
            – ksu
            Dec 13 '13 at 15:56















          up vote
          4
          down vote



          accepted







          up vote
          4
          down vote



          accepted






          I don't think this action returns a result so calling startActivityForResult is no different to calling startActivity



          Note here: output = None.
          http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL






          share|improve this answer














          I don't think this action returns a result so calling startActivityForResult is no different to calling startActivity



          Note here: output = None.
          http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Dec 13 '13 at 15:03

























          answered Dec 13 '13 at 14:45









          Kuffs

          30.6k106486




          30.6k106486








          • 1




            I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
            – ksu
            Dec 13 '13 at 14:57












          • ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
            – Kuffs
            Dec 13 '13 at 15:02












          • I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
            – ksu
            Dec 13 '13 at 15:44










          • No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
            – Kuffs
            Dec 13 '13 at 15:46












          • So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
            – ksu
            Dec 13 '13 at 15:56
















          • 1




            I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
            – ksu
            Dec 13 '13 at 14:57












          • ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
            – Kuffs
            Dec 13 '13 at 15:02












          • I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
            – ksu
            Dec 13 '13 at 15:44










          • No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
            – Kuffs
            Dec 13 '13 at 15:46












          • So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
            – ksu
            Dec 13 '13 at 15:56










          1




          1




          I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
          – ksu
          Dec 13 '13 at 14:57






          I use ACTION_CALL as the intent. Even this intent does not return any result, but I set the result explicitly since I was listen to the phone state with the following code: case TelephonyManager.CALL_STATE_IDLE: setResult(Activity.RESULT_OK);
          – ksu
          Dec 13 '13 at 14:57














          ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
          – Kuffs
          Dec 13 '13 at 15:02






          ACTION_CALL also has no return value. You are setting the result in your listener not in the dialer activity. It is the activity that would need the result setting. You do not have access to that. According to the docs, PhoneStateListener has no setResult method. developer.android.com/reference/android/telephony/…
          – Kuffs
          Dec 13 '13 at 15:02














          I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
          – ksu
          Dec 13 '13 at 15:44




          I see. I think I get it. Everytime I call setResult() it will trigger the onActivityResult() call back. But my code to turn the icon off won't get executed because the condition case REQUEST_SLIPDROP_ICON_OFF: is not met. Why? I started the activity with this requestCode already. BTW, PhoneStateListener is a inner class of the activity. Any other way to achieve the result I want?
          – ksu
          Dec 13 '13 at 15:44












          No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
          – Kuffs
          Dec 13 '13 at 15:46






          No it appears you don't get it. There is no callback. This intent does not return a result. onActivityResult will NEVER be called because the Activity that contains the dialer never sets a result as I already stated in my previous comments. It is the dialer that would need to setResult for this to work.
          – Kuffs
          Dec 13 '13 at 15:46














          So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
          – ksu
          Dec 13 '13 at 15:56






          So basically I don't have access to the dialer code, I won't be able to setResult for that activity? Even though I setResult on phoneListener, it's not what I want because I originally started the dialer activity.
          – ksu
          Dec 13 '13 at 15:56




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f20569089%2fandroid-startactivityforresult-setresult-onactivityresult-not-called%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          What visual should I use to simply compare current year value vs last year in Power BI desktop

          How to ignore python UserWarning in pytest?

          Alexandru Averescu