如何在活动之间同步数据?

时间:2014-01-30 17:01:42

标签: java android android-intent android-activity

我希望数据在两个活动之间同步。我在第一个Activity里面有TextView1,在第二个Activity里面有TextView2。第2次活动从1日开始。之后,TextView2中的数据被更改。当我回到第一个Activity时,TextView1中的数据必须与TextView2的数据相同。我试图使用意图,但是不可能因为第一个Activity崩溃,因为它正在等待数据,我想。

第一项活动:

.....

level = getIntent().getExtras().getString("level");
score = getIntent().getExtras().getString("score");

.....

第二项活动:

.....

Intent intent = new Intent(2nd_activity.this, 1st_activity.class);
intent.putExtra("level", Integer.toString(level));
intent.putExtra("score", Integer.toString(score));

.....

我猜你已经弄明白为什么它不起作用了。 我需要做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以使用startActivityForResults打开第二个活动,当第二个活动应该关闭然后您致电:

 Intent returnIntent = new Intent();
 returnIntent.putExtra("tv_text",tv.getText());
 setResult(RESULT_OK,returnIntent);     

在活动1中,您将收到onActivityResult的结果,并使用Intent data更新活动1中的textview,示例代码来自:

How to manage `startActivityForResult` on Android?

答案 1 :(得分:1)

你必须检查对getIntent()的调用是否不返回null,就像你第一次启动第一个Activity时那样

Intent rcvdIntent = getIntent();
if (rcvdIntent != null) {
   level = rcvdIntent.getExtras().getString("level");
   score = rcvdIntent.getExtras().getString("score");
}