Kri*_*son 39 android android-actionbar android-navigation
我有两个活动.说Activity A和Activity B.
从Activity A我单击按钮启动Activity B这是我用于此的代码:
Intent intent = new Intent(this, ActivityB.class);
this.startActivity(intent);
Activity B.在on create方法中Activity B,我启用了向上按钮.
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_news);
    getActionBar().setDisplayHomeAsUpEnabled(true); //Here//
}
并在"向上"按钮的事件句柄上,我有这个代码:
public boolean onOptionsItemSelected(MenuItem item){
     switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            NavUtils.navigateUpFromSameTask(this);
        default:
            return super.onOptionsItemSelected(item);
    }
}
Activity A单击操作栏中的向上按钮,如下所示: 
现在问题是,当我点击"向上按钮"时,它返回到Activity A哪个很好,但它重新启动它.怎么能让它停止重启?我只想让它恢复.
当我使用我的硬件后退按钮时,它按预期工作.即它转到Activity A并恢复它而不是重新启动它.
我希望我的活动恢复,因为在那个活动上,我在网上下载了一些字符串,因此我不希望它在用户从活动B开始时继续下载数据- >活动A
Activity B部分如下所示:
<activity
    android:name="com.example.android.ActivityB"
    android:label="@string/title_activity_view_news"
    android:parentActivityName="com.example.android.ActivityA">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.android.ActivityA" />
</activity>
android:launchMode="singleTop"所以它现在看起来像这样:
<activity
    android:name="com.example.android.ActivityA"
    android:label="@string/app_name" 
    android:launchMode="singleTop"> //**HERE**//
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
sin*_*hum 55
应该添加作为答案而不是评论..但在这里你去,所以你可以接受,如果你想,所以其他人可以看到必要的.
基本上,总结一下android总会重新创建活动,除非你指定它不用
android:launchMode="singleTop"
注意:如果返回的活动不在引用中提到的后端堆栈的顶部,则它将不起作用.
对于其他任何人,如果你发现这个有用的话,请在网址上代替我的答案.
| 归档时间: | 
 | 
| 查看次数: | 13178 次 | 
| 最近记录: |