活动B:回到Actionbar上的活动A调用A.onCreate()。后退按钮没有

时间:2016-07-18 11:58:14

标签: android back-button

我有活动AActivity,称为活动BActivity。 在AndroidManifest我指定B如下:

<activity android:name=".main.BActivity"
        android:parentActivityName=".main.AActivity">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".main.AActivity" />
    </activity>

如果我在Activity B并点击了手机的后退按钮,那么我会回到Activity A,而无需再次致电A.onCreate(); - &#39我希望它如何。但如果我在Activity B并点击左上方的ActionBar's Back button,那么我会再次返回Activity A,但会调用A.onCreate();。如何使用活动顶部的后退按钮以电话后退按钮的方式运行,即不调用StartingActivity.onCreate()?

顺便说一句:活动A和B从AppCompatActivity延伸。

4 个答案:

答案 0 :(得分:1)

OnClick(View view)函数调用finish()内。
Related guide

答案 1 :(得分:1)

您可以在清单内部活动中使用android:launchMode="singleTop"答。请阅读以下链接以获取更多详情return parent activity correctly

答案 2 :(得分:0)

finish()

时拨打onBackPressed() onOptionsItemSelected()id == android.R.id.home
@Override
public void onBackPressed(){

    if(EcologDriverAIDApplication.DEBUG){

        Log.i(TAG, "onBackPressed");

    }
    finish();

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    //Back button pressed
    if (id == android.R.id.home) {
        finish();
        return true;
    }

    return super.onOptionsItemSelected(item);
}

答案 3 :(得分:0)

  

如何使用活动顶部的后退按钮以电话后退按钮的方式运行,即不调用StartingActivity.onCreate()?

//declare android:onClick="backButtonPressed" in your xml in the back button layout
public void backButtonPressed(View view) {
    onBackPressed();
}

为什么它应该有效:

当您按下android的底部后退按钮时,会调用onBackPressed()。正如您所说,底部后退按钮水龙头按您希望的方式工作。因此,只需从操作栏后退按钮的点击监听器中调用它

即可