Jam*_*mes 5 android android-intent android-fragments
我有一个SearchAcvitity,它有一个子PersonActivity.每个都是FragmentActivity的.这是我的清单文件:
<activity android:name=".SearchActivity" android:label="@string/search_title">
</activity>
<activity android:name=".PersonActivity" android:label="@string/person_title"
android:parentActivityName=".SearchActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SearchActivity" />
</activity>
Run Code Online (Sandbox Code Playgroud)
从SearchFragment,我像这样启动PersonActivity:
Intent i = new Intent(getActivity(), PersonActivity.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
仅此一项就可以在PersonFragment中将面向左侧的插入符号与app图标一起添加.当我按下此图标时,它会重新创建SearchAcvitiy(和片段),因此其先前的状态将丢失.
当我按下PersonFragment中的后退按钮时,它会通过onResume(...)返回SearchActivity的SearchFragment,其状态完好无损.如何通过up动作实现这一目标?
请注意,我不在PersonFragment中进行此调用:
.getActivity()getActionBar()setDisplayHomeAsUpEnabled(真).
Dav*_*ser 15
UP导航启动父Activity Intent.FLAG_ACTIVITY_CLEAR_TOP
.此标志的标准行为是完成位于任务堆栈中父活动之上的所有活动,包括父活动本身,然后启动父活动**的新实例.如果要恢复父Activity的现有实例,则可以在父Activity的清单中设置以下内容:
android:launchMode="singleTop"
Run Code Online (Sandbox Code Playgroud)
当CLEAR_TOP和SINGLE_TOP一起使用时,这将恢复父Activity的现有实例.在这种情况下,onCreate()
不会在恢复的父Activity onNewIntent()
上调用,而是调用它.
我想有人可能之前问过这个问题:onCreate is called on Activity A in up navigation
基本上这是预期的行为。您需要将状态保存到捆绑包中,您可以在 onCreate 中恢复该状态。
归档时间: |
|
查看次数: |
1656 次 |
最近记录: |