Hi,
die developer Seiten habe ich durchstöbert, auch so einiges anderes im Netz gelesen. Das Problem ist auch mit einem anderen Hindernis verbunden das aufgefallen ist.
Ich wollte ebenfalls vor der Permission Abfrage des Systems ein Dialog anzeigen das dem Benutzer weitere Informationen über die Berechtigungen gibt. Dazu habe ich ein AlertDialog genutzt. Und siehe da der AlertDialog erscheint und wird sofort von der Permission Abfrage des Systems überdeckt. (Stichwort: Modale Dialoge)… aber das nur am Rande. Bleiben wir erstmal bei einem Problem...
Die Struktur meines Programmes sieht so aus:
Imports etc...
public class MainActivity extends AppCompatActivity implements View.OnClickListener
//Variablen/Objekt Deklarationen
Button butmor;...
protected void onCreate(Bundle savedInstanceState) etc.
//Permission prüfen
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
Nix wird gemacht
else
AlertDialog mit Text für Userinformationen
//Permisson anfragen
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_EXTERNAL_STORAGE_RESULT);
end if
//Objekte mit Layout verbinden
butmor = (Button) findViewById(R.id.butmor);...
//ein paar Daten Arrays und Variablen initialisieren
...
//Datendatei lesen oder als leerdatei erstellen
if !datei.exists
datei erstellen
else
datei lesen
end if
//Buttons mit onclickListener verbinden
butmor.setOnClickListener(this);...
//einige Attribute setzen
butmor.setBackgroundColor(0xFFFF4444);...
//Listview erstellen/befüllen/anzeigen
Adaper etc.
//Andere Datendatei für Programmeinstellungen lesen oder erstellen
if !datei.exists
datei erstellen
else
datei lesen
end if
----------------Ende onCreate
//onCreate für Menue
public boolean onCreateOptionsMenu(Menu menu) etc.
//ein paar subroutinen für die Programmlogik
public void …
//Reaktionen auf Menueclicks
public boolean onOptionsItemSelected(MenuItem item)
switch case usw. für zwei activitys
//Reaktionen auf Objektclicks
public void onClick(View view)
switch case usw. bei Bedienung der Eingabefelder
ein Case zum speichern der eingegeben Daten
----------------Ende der Show
Ich frage also zuerst die bestehenden Permissions ab, mache in dem If Zweig bei bestehender Permission aber nichts, da die folgenden Sachen ja dann eh durchlaufen werden. Nur im Else Zweig Frage ich die Permission an. (mit einem davorgesetzten AlertDialog, der aber sogleich von dem Systemfenster überlagert wird.
Mein Problem ist nun, dass die beiden Dateioperationen, beim allerersten Mal halt ohne Permission abgearbeitet werden. Mit dem Ergebnis das diese Dateien nicht erstellt werden.
Starte ich das Programm dann erneut, funzt natürlich alles Reibungslos.
Ich hoffe das ich meine Struktur verständlich dargelegt habe, und ihr damit was anfangen könnt... würde mich über eine gute Idee sehr freuen.