活动调用onCreate on Back

时间:2015-02-10 08:54:52

标签: java android android-activity oncreate

我有一个名为A的活动,活动A上的一些事件调用活动B.现在,当我在活动B中使用向上导航时,它返回到活动A,但也调用了onCreate方法。如果我使用后面的硬件/软键,它不会调用onCreate,只返回活动A,它就在那里。如何使向上导航的行为方式相同?

我的onCreate以异步方式进行网络调用。拨打另一个电话只会浪费数据和时间。 这是我用来从活动A启动活动B的代码。

Intent intent = new Intent(MainActivity.this, newsIndexActivity.class);
                    intent.putExtra("CityName", cityName.getText());
                    startActivity(intent);

4 个答案:

答案 0 :(得分:4)

向上和向后导航不一样,如果您希望向上导航按钮的行为类似于后退按钮,则应该执行此类操作

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            this.finish();
            return true; 
    }
    return super.onOptionsItemSelected(item);
}

如果可能,您应该看一下这个链接:

您可以在那里获得更多相关信息。

答案 1 :(得分:1)

通过将父活动的launchMode声明为singleTop,我们可以防止系统在每次按Up时创建新活动。

答案 2 :(得分:0)

没有任何代码似乎很难解决,但最可能的原因是你打电话给startActivity。只需使用finish()关闭当前活动,并使用backstack,它应该按预期运行。

答案 3 :(得分:-2)

只需在按钮回调监听器中调用finish()或onBackPressed()方法。

finish();
super.onBackPressed();