刚开始想用广播实现,后来发现不行,一直报fragment的onSaveInstance错误
最后发现自己想复杂了
直接用startActivity中intent携带参数就能实现
注意:如果activity启动模式是singleTask是不能通过intent传值的,会报空指针,要把MainActivity设置成其他启动模式
直接上代码:
// 跳转到我的工单 Intent intent2=new Intent(getApplicationContext(),MainActivity.class); intent2.putExtra("showMyItem","showMyItem"); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); startActivity(intent2);
在MainActivity中获取intent的extra
在activity的onResume()方法中获取
@Override protected void onResume() { // 显示我的工单列表 if (getIntent().getStringExtra("showMyItem")!=null){ if (getIntent().getStringExtra("showMyItem").equals("showMyItem")){ saveName=wokrFragment.getClass().getName(); //显示需要显示的fragment
showMyWorkFragment(); } } super.onResume(); }
/** * 显示我的工单列表 */ private void showMyWorkFragment() { showFragment(myWorkFragment); imgMain.setImageResource(R.mipmap.main1); imgWork.setImageResource(R.mipmap.workitem1); imgMyWork.setImageResource(R.mipmap.mywork2); tvMain.setTextColor(getResources().getColor(R.color.color_main)); tvWork.setTextColor(getResources().getColor(R.color.color_main)); tvMyWork.setTextColor(getResources().getColor(R.color.main_color)); }