Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未在片段中调用onActivityResult(),活动完成_Android_Android Fragments - Fatal编程技术网

Android 未在片段中调用onActivityResult(),活动完成

Android 未在片段中调用onActivityResult(),活动完成,android,android-fragments,Android,Android Fragments,我在一个活动中有一个片段,我正在使用一个按钮使用铃声选择器选择通知声音: selectSound.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);

我在一个活动中有一个片段,我正在使用一个按钮使用铃声选择器选择通知声音:

selectSound.setOnClickListener(new OnClickListener() {          
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
            if (notification != null) {
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) notification);
            }
            Log.v("TASKS", "Starting Ringtone picker for reminders");

            startActivityForResult(intent, 5001);
        }
    });
下面是片段中我的onActivityResult:

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.v("TASKS", "onActivityResult in ReminderSettings: " + requestCode);
    if (resultCode == Activity.RESULT_OK && requestCode == 5001)
    {
        Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

        SharedPreferences settings =
            mActivity.getSharedPreferences("SETTINGS", Context.MODE_PRIVATE);
        Editor editor = settings.edit();

        if (uri != null)
        {
            editor.putString("NOTIFICATION_SOUND", uri.toString());
        }
        else
        {
            editor.putString("NOTIFICATION_SOUND", null);
        }
        editor.commit();
    }

}
我的活动具有onActivityResult,但它确实会调用未处理的结果:

 @Override
protected void onActivityResult(
    int requestCode, int resultCode, Intent data) {
    ...
    super.onActivityResult(requestCode, resultCode, data);
}

奇怪的是,在启动并选择铃声之后,片段中的activityresult或在调试时调用activity,并且该活动似乎已完成-Logcat上没有强制关闭或异常。我现在已经在两个不同的设备上测试了这一点,得到了相同的结果-如果相关,我将使用ActionBarSherlock获取片段。

删除此代码,然后重试一次super.onActivityResultrequestCode、resultCode、data;请尝试在activity而不是fragment.tryo中处理onActivityResult,以将日志放在调用super之前,并查看是否显示日志。我已将日志记录语句移动到fragment和activity中onActivityResult的第一行,并再次调试,两个方法都未被调用