一部の電話startActivities()
でメソッドを使用してアクティビティを開始しようとすると問題が発生することがあります (具体的には、 Samsung Galaxy S3 - Android 4.3 、Samsung Galaxy S3 Neo - Android 4.4.2 ) 。TaskStackBuilder
以下は、使用されるコード スニペットです。
TaskStackBuilder stackBuilder = TaskStackBuilder.create(ConfirmAddressActivity.this);
stackBuilder.addParentStack(AddressesActivity.class);
Intent intent = AddressesActivity.createStartingIntent(
ConfirmAddressActivity.this,
true, Collections.EMPTY_LIST
);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
stackBuilder.addNextIntent(intent);
stackBuilder.startActivities();
バグのある動作は、実行後stackBuilder.startActivities()
に白い画面が開き、AddressesActivity を開かずにフリーズしたままになることです。これは通常の動作ではなく、時々発生します。
通常の動作では、実行後stackBuilder.startActivities()
(0.5 秒 - 1 秒) の間白い画面が開き、そのアクティビティの完全なバック スタックが正しく構築されている間に AddressesActivity が開きます。これは、多くのデバイス/プラットフォームで正しい動作です。( HTC M9 Android 6.0、Samsung S2 - Android 4.1.2、Samsung Galaxy S6 - Android 5.1.1、LG G4 - Android 5.1.1 )
アクティビティを定義する Android マニフェスト スニペットを次に示します。
<activity
android:name=".activity.account.AccountActivity"
android:label="My account"
android:screenOrientation="portrait"
android:parentActivityName=".activity.DashboardActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.DashboardActivity" />
</activity>
<activity
android:name=".activity.addresses.AddressesActivity"
android:label="My addresses"
android:screenOrientation="portrait"
android:parentActivityName=".activity.account.AccountActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.account.AccountActivity" />
</activity>
<activity
android:name=".activity.addresses.ConfirmAddressActivity"
android:label="Save address"
android:screenOrientation="portrait"
android:parentActivityName=".activity.addresses.AddressDetailsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.addresses.AddressDetailsActivity" />
</activity>
この問題に関するヘルプや洞察は大歓迎です。