Android活动在bundle中获取旧值

时间:2014-11-20 00:32:20

标签: android

在我的Android活动B中,我读取了意图中捆绑的值,如此

    Bundle bundle = getIntent().getExtras();
    Boolean mine = bundle.getString("mine").equals("1");
    int pagenum = bundle.getInt("page");

当我从另一个活动B开始A时,我在我的地址= 0,pagenum = 0。 我可以在B中读到这么好。

但是在B中,我想重新加载活动,完成自己并打开另一个B。我还需要传递这样的新数据:

private void refresh(Boolean mine, int newpage) {
    finish();

    Intent myIntent = new Intent(this, AllThreadsScreen.class);
    myIntent.putExtra("mine", mine ? "1" : "0");
    myIntent.putExtra("page", Integer.toString(newpage, 10));
    startActivity(myIntent);
}

当我致电时,我确保newpage的值为1。但问题是,在启动活动后,当我从包中读取page值时,它再次变为0 ...

有谁知道什么是错的?

感谢。

1 个答案:

答案 0 :(得分:1)

您没有“重新启动”活动。如果你打电话给finish()并且线路仍在工作,那么它真的没有完成,是吗?

正在发生的事情是Activity可能会开始整理过程,但随后会收到一个新的Intent。 Android实际上并没有破坏它。

此外,无论如何,您无需finish活动。只需使用onNewIntent(一个鲜为人知的,很少使用的Activity方法)。

How to capture the new Intent in onNewIntent()?