首页 > 解决方案 > 在后台运行的android片段

问题描述

我有以下调用链

  1. 在一个片段中,我调用 zxing 积分器来扫描 qr 代码,它返回结果

     onActivityResult(int requestCode,int resultCode,Intent data) 
    

    片段的

  2. onActivityResult 调用一个 Asynctask,

    new getStaffIdTask(choosen_schema_for_scanning,userid).execute((Void)null); 
    

    其 onPostExecute(final Boolean success) 将片段侦听器称为..

     if(mListener!=null)
                mListener.onScannedStaff(tableName,Integer.parseInt(id),Integer.parseInt(userid));
    
  3. 返回主机活动,调用 onScannedStaff 函数并在其中替换片段

    @Override
    

    public void onScannedStaff(String tableName, int staffid,int staffUid) { getSupportActionBar().setTitle("员工资料");

    Fragment fragment= StaffProfileFragment.newInstance(tableName,staffid,staffUid);
    FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.home_boss_base,fragment,"scannedstaff");
    transaction.addToBackStack(null);
    transaction.commit();
    

    }

问题是这个片段在后台运行,根本没有显示任何 UI。我不知道如何显示它

标签: android-fragmentszxing

解决方案


我也面临同样的问题。在片段中使用 LinearLayout。背景颜色应该是白色的并且应该是可点击的。

并且不要从 OnPostExecute() 调用 UI 元素。这会给您带来一些重大的内存泄漏或错误。


推荐阅读