我有6项活动 - A,B,C,D,E,F。
A打开B,B打开C,依此直到F.我现在在F,然后从F,我使用Intent.FLAG_ACTIVITY_CLEAR_TOP打开B并在后台维护A.
现在我想在按下后退按钮时从B活动将数据发送回A.请帮助!!
答案 0 :(得分:0)
如果你使用startActivityForResult然后需要在所有6个活动中使用,那么将有两个方法,这将需要在onActivityResult的所有活动中进行代码更改这意味着你必须在堆栈中维护所有6个活动,直到你的工作完成后完成使用F只需设置数据并完成F将收到E只是将收到的数据传递给D并完成E你必须保持这个直到A,这将导致你额外的编码和努力。
第二种方法是不使用Intent.FLAG_ACTIVITY_CLEAR_TOP并使用Intest.FLAG_ACTIVITY_CLEAR_TOP维护A并在后台堆栈中维护A,因此不会在堆栈中维护A.就像这个打开A有你在B中的数据,但我不知道这在你的情况下是可行的。
答案 1 :(得分:0)
您可以使用静态方法将数据从一个活动发送到另一个活动(当活动没有直接链接且不想重新创建第一个活动时)。
在第一次激活..
public class A extends Activity {
static A INSTANCE;
String data="";
@Override
public void onCreate(Bundle savedInstanceState) {
INSTANCE=this;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public static A getActivityInstance()
{
return INSTANCE;
}
public void getData(String b_data)
{
data = b_data;
}
}
第二项活动:
public class Second extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
}
}
@Override
public void onBackPressed()
{
A.getActivityInstance().getData("Your data");
super.onBackPressed();
}
希望这会对你有所帮助。