Salut,

J'ai un widget avec un bouton. Ce bouton permet de démarrer une activity. Dans cette activity, j'ai créé un bouton "test" qui permet de créer un document via ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
final Button testButton = findViewById(R.id.button_test);
    test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ActivityCompat.requestPermissions(WidgetActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    Utils.MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
 
            String fileName = "test.txt";
            Intent exportIntent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
            exportIntent.addCategory(Intent.CATEGORY_OPENABLE);
            exportIntent.setType("text/plain");
            exportIntent.putExtra(Intent.EXTRA_TITLE, fileName);
            startActivityForResult(exportIntent, FILE_EXPORT_REQUEST_CODE);
        }
    });
Et ma méthode onActivityResult :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
 
    super.onActivityResult(requestCode, resultCode, data);
 
    if (resultCode != RESULT_OK)
        return;
 
    switch (requestCode) {
        case FILE_EXPORT_REQUEST_CODE:
            if (data != null) {
                Uri uri = data.getData();
                if (uri != null) {
                    Context c = WidgetActivity.this;
 
                    ParcelFileDescriptor pfd = null;
                    try {
                        pfd = c.getContentResolver().openFileDescriptor(uri, "w");
                        Preferences.export(mAppWidgetId, pfd.getFileDescriptor(), WidgetActivity.this);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
 
                }
            }
            break;
    }
}
onActivityResult n'est jamais exécuté. Pire que ça, c'est mon MainActivity qui se lance mais sans recevoir d'intent, comme en cas d'instabilité.

J'ai utilisé ce même code dans une appli de test créé pour l'occasion. ça fonctionne parfaitement.

Je ne sais plus où chercher...