在我的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 ...
有谁知道什么是错的?
感谢。
答案 0 :(得分:1)
您没有“重新启动”活动。如果你打电话给finish()
并且线路仍在工作,那么它真的没有完成,是吗?
正在发生的事情是Activity可能会开始整理过程,但随后会收到一个新的Intent。 Android实际上并没有破坏它。
此外,无论如何,您无需finish
活动。只需使用onNewIntent
(一个鲜为人知的,很少使用的Activity方法)。