In meiner MainActivity habe ich einen Dialog, der geöffnet wird, wenn ein Flag in der Absicht gesetzt ist. Wenn der Dialog erstellt wurde, ist es in onPause()
Aktivitäts-Lebenszyklus geändert mit API 25 (7.1.1)
@Override
public void onPause() {
super.onPause();
if (_dialog!= null) {
_dialog.dismiss();
_dialog= null;
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intentContainsFlag) {
_dialog = ....;
_dialog.show();
}
}
Der Dialog geschlossen wird, geöffnet werden, wenn eine Taste des Listview-Halter gedrückt und baut eine Absicht URI:
bttn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// The URL scheme is registered in the intent filter
String intentString = "http://open.example.com/myParameters";
v.getContext().startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(intentString)));
}
});
Die AndroidManigfest enthält:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http" android:host="open.example.com" android:pathPattern=".*"/>
<data android:scheme="https" android:host="open.example.com" android:pathPattern=".*"/>
</intent-filter>
....
Die sdk Versionen sind
gesetztminSdkVersion = 19
targetSdkVersion= 22
compileSdkVersion = 23
buildToolsVersion = 23
Auf Android < 7.1.1 funktioniert alles wie erwartet: onNewIntent()
wird aufgerufen und der Dialog ist sichtbar.
Aber am 7.1.1. Geräte wird die MainActivity onNewIntent
genannt, dann direkt danach und onResume
. Dies bedeutet, dass sich die Aktivität selbst öffnet/in den Vordergrund tritt, aber der Dialog wurde sofort geschlossen.
Eine mögliche Problemumgehung ist es, den Dialog in onStop()
zu schließen, aber ich verstehe nicht, warum dies auf Android 7.1.1 passiert - wurde etwas im Lebenszyklus geändert?
Können Sie ein einfaches Projekt mit diesem Verhalten bei Github veröffentlichen? – azizbekian
Könnte es sein, dass Ihr Dialog selbst dazu führt, dass Ihre Aktivität angehalten wird? – Nonos