以下是我从其他人的例子中找到的两个函数。似乎对我来说效果很好,直到检查resultCode。无论用户按OK还是取消,resultCode都为零。你能告诉我为什么吗?此代码存在于从AppCompatActivity继承的Activity类中。我尝试将调用添加到super.onActivityResult,但它不会以任何明显的方式改变行为。
编辑 onActivityResult中的“intent”参数始终为null。只有requestCode返回正确。救命!愚蠢的电脑......他们讨厌我!
public void onClickChooseNotificationSound(View view)
{
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");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
this.startActivityForResult(intent, 5);
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent)
{
//super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == Activity.RESULT_OK && requestCode == 5)
{
Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null)
{
NotificationSound = uri.toString();
}
else
{
NotificationSound = null;
}
}
}
答案 0 :(得分:3)
这似乎是由调用类在清单中声明为单个实例引起的,例如
<activity
android:name=".MyActivity"
android:launchMode="singleInstance">
</activity>
我删除了它就像
<activity android:name=".MyActivity" />
现在一切都很好。现在我需要重新评估为什么我首先在所有活动中使用singleInstance。