W głównym oknie dialogowym Mam okno dialogowe, które jest otwarte, jeśli ustawiono flagę w intencji. Jeżeli okno zostało stworzone, jest ona oddalona w onPause()
Cykl życia działalności zmieniony za pomocą 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();
}
}
oknie dialogowym ma być otwarty czy przycisk posiadacz ListView jest wciśnięty i buduje intencją 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)));
}
});
AndroidManigfest zawiera:
<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>
....
wersji SDK są ustawione na
minSdkVersion = 19
targetSdkVersion= 22
compileSdkVersion = 23
buildToolsVersion = 23
Na Androidzie < 7.1.1, wszystko działa zgodnie z oczekiwaniami: wywoływana jest onNewIntent()
, a okno dialogowe jest widoczne.
Ale w 7.1.1. Urządzenia nazywa się MainActivity onNewIntent
, następnie bezpośrednio po i onResume
. Oznacza to, że działanie otwiera się/wychodzi na pierwszy plan, ale okno dialogowe zostało natychmiast zamknięte.
Możliwym rozwiązaniem jest zamknięcie okna dialogowego w onStop()
, ale nie rozumiem, dlaczego tak się dzieje w systemie Android 7.1.1 - coś się zmieniło w cyklu życia?
Czy możesz wysłać prosty projekt z tym zachowaniem na github? – azizbekian
Czy to możliwe, że samo okno dialogowe powoduje wstrzymanie działania? – Nonos