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

