java - 我想在不挂起程序的情况下运行一个函数

标签 java android multithreading

当我运行时

msgcheck.setOnClickListener(new View.OnClickListener() {            
        @Override
        public void onClick(View v) {

            if(msgcheck.isChecked()){
                //hedearMsg


                final Dialog dialog = new Dialog(this);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
                dialog.setContentView(R.layout.custommsg);
                dialog.setCancelable(true);
                dialog.show();

                Thread t = new Thread() {
                  public void run() {
                     // Do something on another thread
                      PopulatePeopleList();

                  }
                };
                t.run();

        }
    });

我的程序挂起几秒钟然后显示对话框
我想在不挂起的情况下运行此对话框,并且 PopulatePeopleListfunc 工作有人知道吗?

最佳答案

线程以start开始,而不是run:

Thread t = new Thread() {
    public void run() {
        // Do something on another thread
        PopulatePeopleList();
    }
};
t.start();

run 只会在主线程上顺序调用 run 方法。

关于java - 我想在不挂起程序的情况下运行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111594/

相关文章:

java - this.getClass().getResource() 在哪里看?

JAVA:将 String 转换为(动态已知的)原始类型以实例化(动态已知的)类

android - Activity 之上的 Fragment

java - 为什么我的多线程效率不高?

c++ - x86(_64) 上的原子计数器和自旋锁的成本

java - Java中高效同步列表

java - Selenium 可以截取 JUnit 测试失败的屏幕截图吗?

java - 如何动态创建一个Java类List?

android - 自定义单选按钮图像未填充空间

android - 如何删除某些字段中具有重复数据的连续行(在 SQLite 中)?