Je reçois les rapports d'erreur suivants:Impossible d'effectuer cette action après onSaveInstanceState montrent
Exception fatale: java.lang.IllegalStateException: Impossible d'effectuer cette action après onSaveInstanceState à android.support.v4 .app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1832) à l'adresse android.support.v4.app.FragmentManagerImpl.enqueueAction (FragmentManager.java:1850) at android.support.v4.app.BackStackRecord.commitInternal (BackStackRecord.java : 643) at android.support.v4.app.BackStackRecord.commit (BackStackRecord.java:603) à android.support.v4.app.DialogFragment.show (DialogFragment.java:143)
Ce code suivant est à l'origine du crash, je coupe un code de configuration trivial pour plus de clarté. J'ai lu sur cette erreur et si je comprends bien le .show()
devrait être en sécurité dans une interaction de l'utilisateur tels que onClick()
. La seule chose que je peux penser est que le query()
prend beaucoup de temps et l'utilisateur échange. Est-ce une explication logique pour cette erreur? C'est instantané sur mes appareils même avec une grande DB. D'autres possibilités? Merci!
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);
}
});
Avez-vous trouvé la solution pour cette exception fatale. – RameshJaga