安卓 生命周期 从onstop到onstart

安卓 生命周期 从onstop到onstart_第1张图片


今天遇到了一个新的问题,真的很神奇,记录一下。

场景:在进入一个fragment时验证是否登录,这时跳转到登陆界面登录,而原来fragment所在的activity则会执行onPause()-->onStop()

这时如果我们不想登录了立即回来,这时就会执行回调接口中的方法:

@Override public void loginCancelCallBack() { // TODO Auto-generated method stub Thread t = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { Thread.sleep(5000); handler.sendEmptyMessage(3); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); t.start(); }

这是一个登录取消回调接口里的取消方法,注意里卖弄有一个线程,下面是handler中的那个方法:

case 3: LogX.getInstance().i("eatMore", "获取服务器订单信息数据失败============="); LinearLayout lvMyMore = (LinearLayout) getActivity().findViewById( R.id.eat_more_rv); lvMyMore.setBackgroundColor(Color.parseColor("#D3D3D3")); LinearLayout lvNearFood = (LinearLayout) getActivity() .findViewById(R.id.near_food_rv); lvNearFood.setBackgroundColor(R.color.nearfood_click); fragmentManager = getActivity().getSupportFragmentManager(); transaction = fragmentManager.beginTransaction(); transaction.hide(FragmentEatMore.this); transaction.show(fragmentManager .findFragmentByTag("nearFoodFragment")); transaction.commit(); break;

这里的这个方法是执行从当前fragment去到另一个fragment,nearFoodFragment的,下面就是问题所在了。

如果直接在回调接口中使用这个方法会直接报错:


因为这时fragment所在的那个activity还木有执行onStart和onResum方法,只有过个一段时间才会执行,之后再做跳转才行,

所以才在回调里睡个几秒钟,但到底多长时间还没有确定,之后补上更好的解决办法,切记。

你可能感兴趣的:(安卓)