我有一个名为Activity A的Android Activity,如下所示。当我单击saveButton时,将调用saveData()方法,然后调用finish()方法并关闭Activity A.当我单击Activity A中的triggerActivity_B按钮转到Activity B然后单击triggerActivity_A按钮时在Activity B中返回Activity A,我点击saveButton并且不调用saveData()方法,只调用finish()方法。它似乎只在我不离开Activity时执行,我不知道为什么会这样。
非常感谢您的帮助。
ActivityA.java :
public class ActivityA extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
saveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
saveData();
finish();
}
});
triggerActivity_B.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(ActivityA.this, ActivityB.class);
startActivity(i);
finish();
}
});
}
private void saveData() {
String desc = descriptionEntry.getText().toString();
if (mRowId == null) {
long id = mDbHelper2.createDescription(desc);
if (id > 0) {
mRowId = id;
}
} else {
mDbHelper2.updateDescription(mRowId, desc);
}
}
}
ActivityB.java :
public class ActivityB extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
triggerActivity_A.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(ActivityB.this, ActivityA.class);
startActivity(i);
finish();
}
});
}
}
答案 0 :(得分:0)
要点是,如果单击ActivityB中的triggerActivity_A按钮,则会生成一个新的ActivityA实例;它不会回到你的第一个ActivityA,因此可能没有什么可以保存。
另请注意,当您按下按钮以打开ActivityB时,您的第一个activityA会占用,因为您调用的是finish()。如果你想保持第一个ActivityA不调用finish(),并且在按下ActivityB中的按钮时不启动新活动,只需调用finish()。
没有理由假设没有调用saveData()。
请提高你的接受度。