fragment 是事务提交吗
展开全部
一.概述
在Android中,我们一般会使用FragmentTransaction的commit方法来提交事务,但是在有些情况下,调用这个方法去提交事务是会发生异常的,先让大家看一下会发生什么异常:
意思就是告诉你不能在onSaveInstanceState方法之后去提交事务,这种异常的出现是由于,在Activity的状态保存之后,尝试去提交一个FragmentTransaction,这种现象被称为活动状态丢失。下面贴上发生异常的代码。
public class MainActivity extends FragmentActivity {
private FragmentManager manager;
private FragmentTransaction transaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = getSupportFragmentManager();
transaction = manager.beginTransaction();
transaction.replace(R.id.fl_main,new FragmentOne());
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
transaction.commit();
}
}
在Android中,我们一般会使用FragmentTransaction的commit方法来提交事务,但是在有些情况下,调用这个方法去提交事务是会发生异常的,先让大家看一下会发生什么异常:
意思就是告诉你不能在onSaveInstanceState方法之后去提交事务,这种异常的出现是由于,在Activity的状态保存之后,尝试去提交一个FragmentTransaction,这种现象被称为活动状态丢失。下面贴上发生异常的代码。
public class MainActivity extends FragmentActivity {
private FragmentManager manager;
private FragmentTransaction transaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = getSupportFragmentManager();
transaction = manager.beginTransaction();
transaction.replace(R.id.fl_main,new FragmentOne());
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
transaction.commit();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询