应用程序(目标API级别必须为7)具有FragmentActivity
,它在onCreate
处分析作为额外传递的片段密钥。组织片段活动导航堆栈
现在需要重新排序已经使用给定片段关键字创建的活动。
让我们假设带有不同片段密钥的FragmentActivity
是FA1
,FA2
和FA3
- 每个是具有不同片段的相同活动类实例。
现在在堆栈FA1
>FA2
>FA3
我想在默认情况下,让使用的意图,而不是后退按钮去FA2
,:
FA1
>FA2
>FA3
>新FA2
。
我想获得任何FA1
>FA3
>FA2
作为FA3
可能有一些等待的操作,FA1
>FA2
没以前好了,但肯定比默认更好。
如果有多个活动,我会使用FLAG_ACTIVITY_REORDER_TO_FRONT
标志作为意图,但这不适用于这种情况。
FA1, FA2, FA3, etc.
是同一类MyFA
的所有实例,这就是为什么我不能够使用意图标志和FragmentManager似乎是出于帮助,直到有一个标准的全球片段缓存。
里程碑(目前正在和有待提高)的解决方案有一件事我今天所学到的activity-alias这使得做出几个别名以作为ID的不同意图演员相同的活动。现在,REORDER_TO_FRONT标志按照我的意愿工作。
解决方案反馈该解决方案没有低级操作,我喜欢的不仅仅是挖掘任务或后端堆栈。现在缺点是每个这样的活动都需要一个单独的硬编码路径别名,我不太喜欢它。
要求(赏金在这里)不管谁来体面的优化需要 300饼干。不错 ?任何其他固体解决方案也非常感谢。
目前我在应用程序清单中有10个别名,例如,
<activity
android:name=".activity.FragmentActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="com.company.name.intent.FragmentActivity" />
</intent-filter>
</activity>
<activity-alias
android:name="com.company.name.intent.FragmentActivity.FragmentedOne"
android:targetActivity=".activity.FragmentActivity" >
<intent-filter>
<action android:name="com.company.name.intent.FragmentActivity.FragmentedOne" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="fragment_key_extra"
android:value="FragmentOne" />
</activity-alias>
<activity-alias
android:name="com.company.name.intent.FragmentActivity.FragmentedTwo"
android:targetActivity=".activity.FragmentActivity" >
<intent-filter>
<action android:name="com.company.name.intent.FragmentActivity.FragmentedTwo" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="fragment_key_extra"
android:value="FragmentTwo" />
</activity-alias>
然后将活动重新排序与
Intent intent = new Intent(
"com.company.name.intent.FragmentActivity.FragmentedOne");
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
任何运气? – 2012-10-26 02:50:04
您是否介意对您的活动别名进行阐述?我有一个活动,其中有一个片段可以在8个不同的视图(活动)之间切换。我希望能够使用REORDER前后来回。 – VicVu 2012-10-29 18:09:10
Hi @ Vee,我已经添加了部分清单文件和一小段代码,希望它可以帮助你 - 它应该可以工作。可能会有一些拼写错误,因为我不得不稍微更改文本。 – 2012-10-29 19:20:24