我的addOnGlobalLayoutListener是否在后台运行

时间:2018-11-07 14:47:16

标签: java android

我不知道我的addOnGlobalLayoutListener在哪里运行。

我有一个具有回调的方法?在布局膨胀(据我了解)

private void getSymbolsInRowCount(float textSize, BaseActivity activity){
        View view=LayoutInflater.from(activity).inflate(R.layout.page_fragment,null);
        ((BookView)activity.view).layout.addView(view);
        view.setVisibility(View.INVISIBLE);
        //size = ((TextView) view).getLayout().getLineEnd(0);
         view.getViewTreeObserver().addOnGlobalLayoutListener(
                    () -> {
                            Log.e("why", ((TextView) view).getLayout().getLineEnd(0) + 1 + "");
                            symbolsInRowCount = ((TextView) view).getLayout().getLineEnd(0) + 1;
                    });
    }

奇怪的是,当我创建新线程并调用sleep()时,回调从未完成。仅在sleep通过之后。

public List<String> getPages(String text){
        List<String> pageList=new ArrayList<>();
        String divider = " ";

        Thread thread;

        new Thread(()-> {
            Log.e("why", "2");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();
            return null;
        }

我会相应地调用它们,并且无法理解我错了。

public PageDivider(BaseActivity activity, float textSize,String text){
        this.activity=activity;
        getSymbolsInRowCount(textSize,activity);
        rowsCount=getRowsCount(true,true,true);
        List<String> list=getPages(text);
    }

请帮助我,如何在单独的线程中进行回调?

0 个答案:

没有答案