zeigen ich folgende Fehlerberichte erhalten:Kann diese Aktion nicht durchführen, nachdem onSaveInstanceState
Fatal Exception: java.lang.IllegalStateException: Kann nicht führen diese Aktion nach onSaveInstanceState bei android.support.v4 .app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1832) bei android.support.v4.app.FragmentManagerImpl.enqueueAction (FragmentManager.java:1850) bei android.support.v4.app.BackStackRecord.commitInternal (BackStackRecord.java : 643) bei android.support.v4.app.BackStackRecord.commit (BackStackRecord.java:603) bei android.support.v4.app.DialogFragment.show (DialogFragment.java:143)
Dieser folgenden Code den Absturz verursacht, schneide ich aus Gründen der Klarheit einige triviale Setup-Code aus. Ich habe diesen Fehler gelesen und wie ich es verstehe, sollte die .show()
innerhalb einer Benutzerinteraktion wie onClick()
sicher sein. Das einzige, woran ich denken kann ist, dass die query()
lange dauert und der Benutzer austauscht. Ist das eine vernünftige Erklärung für diesen Fehler? Es ist sofort auf meinen Geräten sogar mit großen DB. Irgendwelche anderen Möglichkeiten? Vielen Dank!
foldersButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
final List<String> paths = new ArrayList<>();
try(Cursor c = getActivity().getContentResolver().query(Meta.CONTENT_URI,
new String[]{"DISTINCT " + Meta.PARENT}, null, null,
Meta.PARENT + " ASC"))
{
while (c != null && c.moveToNext())
{
String path = c.getString(c.getColumnIndex(Meta.PARENT));
// We place the excluded folders at the end
if (!mExcludedFolders.contains(path))
paths.add(path);
}
}
[setup...]
int[] position = new int[2];
foldersButton.getLocationOnScreen(position);
FolderDialog dialog = FolderDialog.newInstance(
paths.toArray(new String[paths.size()]),
visible,
excluded,
position[0],
position[1]);
dialog.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.FolderDialog);
[setup...]
dialog.show(getFragmentManager(), TAG);
}
});
haben Sie die Lösung für diese schwerwiegende Ausnahme gefunden. – RameshJaga