Hi,

It happened to me too.
This was because my main activity was set to "singleTask".

In 
http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,
int),
they precise that it leads to an immediate cancel result.

Hope it will help you !


On 21 avr, 20:59, hmph <[email protected]> wrote:
> I'm using the RingtoneManager to pick a ringtone. However, my
> onActivityResult() method is getting invoked too soon. As soon as the
> ringtone picker dialog appears, onActivityResult() is invoked with a
> non-RESULT_OK result code, even before I select any ringtones or
> select the "OK" button. Then, after choosing a ringtone and selecting
> "OK", onActivityResult() doesn't get called any more.
>
> Here are the pertinent sections of my code. Note that this.toast() is
> just a wrapper to send a toast.
>
>     private boolean menuChoice(MenuItem item) {
>         switch (item.getItemId()) {
>         case 0:
>             this.ringtonePicker();
>             return (true);
>         }
>         return (false);
>     }
>
>     public void ringtonePicker() {
>         Intent intent = new
> Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
>         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select
> ringtone");
>         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT,
> false);
>         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,
> true);
>         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
> RingtoneManager.TYPE_NOTIFICATION);
>         this.startActivityForResult(intent, 999);
>     }
>
>     @Override
>     public void onActivityResult(int requestCode, int resultCode,
> Intent intent) {
>         this.toast("onActivityResult: " + requestCode + ", " +
> resultCode);
>         if (resultCode != RESULT_OK) {
>             this.toast("result code not " + RESULT_OK);
>             return;
>         }
>         if (requestCode == 999) {
>             this.toast("request code is OK");
>             Uri uri =
> intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
>             if (uri != null) {
>                 String ringTonePath = uri.toString();
>                 this.toast("ringtone path: " + ringTonePath);
>             }
>             else {
>                 this.toast("no ringtone path");
>             }
>         }
>         else {
>             this.toast("request code not OK");
>         }
>         super.onActivityResult(requestCode, resultCode, intent);
>     }
>
> The only toast messages I get are "onActivityResult: 999, 0" and
> "result code not -1", and these occur when the ringtone picker first
> shows up, and before I pick any ringtones or select "OK".
>
> The onActivityResult() method doesn't get called any more, even after
> I pick a ringtone and select "OK".
>
> What could I be doing wrong which would cause onActivityResult() to be
> called with a failure before I even pick a ringtone? ... even though
> the ringtone picker shows up properly?
>
> Thanks in advance.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group 
> athttp://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to