猿问

Android Studio 如何创建一个新线程?

我有以下片段类:


public class fragment1 extends Fragment {

    private TextView bunz_count;

    private TextView money_count;

    private Bunz bunz;

    private Handler handler;

    int delay = 1000;

    View view;

    @Nullable

    @Override

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        bunz = Bunz.getInstance();

        handler = new Handler();



        view = inflater.inflate(R.layout.fragment1, container, false);



        handler.postDelayed(new Runnable(){

            public void run(){

                update(view);

                handler.postDelayed(this, delay);

            }

        }, delay);








        return view;

    }



    public void update(View view){

        bunz_count = (TextView) view.findViewById(R.id.final_bunz_count);

        money_count = (TextView) view.findViewById(R.id.final_money_count);

        //System.out.println(bunz.getBaker1());

        //System.out.println(number);

        bunz.setBunz(bunz.getBunz().add((number)));

        bunz_count.setText("Bunz: " + bunz.getBunz());

        money_count.setText("Money: " + bunz.getMoney());

        System.out.println("bunz" + bunz.getBunz());


    }

}

更新玩家货币的 UI 显示。但是,由于有许多不同的进程在后台运行,该线程会滞后并出现问题。我怎样才能在单独的线程上运行它来避免这种情况?



牧羊人nacy
浏览 123回答 1
1回答

慕运维8079593

我也遇到过同样的问题。我的问题的解决方案是创建 3 个可运行对象并在onCreate()Method 中启动它们。看起来像这样:Thread thread = new Thread(runnable);thread.start();为了创建可运行的“对象”,只需执行以下操作:Runnable runnable = new Runnable(){    public void run() {          //some code here    }}; 如果您想要一些延迟操作,您可以在可运行界面中使用延迟后(注意,postDelayed()只会重复整个可运行。您可以通过添加一些条件来避免这种情况)Runnable runnable = new Runnable(){    public void run() {          //some code here       handler.postDelayed(this, 1000);    }}; 如果你想更新 GUI,你应该在你的 runnable 中调用以下命令:handler.post(new Runnable() {     @Override     public void run () {     // upate textFields, images etc...     }});PS 如果你有多个线程并且它们必须在不同的时间启动,你可以从 Runnables 启动它们。
随时随地看视频慕课网APP

相关分类

Java
我要回答