我有一个错误“无法从类型处理程序对非静态方法sendEmptyMessage(int)进行静态引用”
怎么解决?因为我认为这是一个问题,我在这个班上做这件事不是一个活动吗?

        new Thread() {
            public void run() {
            try {

                    List<Sail> sails = searchSails();

                    selectSailIntent.putParcelableArrayListExtra(
                            Constant.SAILS, new ArrayList<Sail>(sails));

                    getContext().startActivity(selectSailIntent);

                    Handler.sendEmptyMessage(0);

                } catch (Exception e) {
                     alertDialog.setMessage(e.getMessage());
                     Handler.sendEmptyMessage(1);

                }
            }
        }.start();
    }
};

最佳答案

“无法从类型处理程序对非静态方法sendEmptyMessage(int)进行静态引用”
这是因为Handler引用了一个类,但是sendEmptyMessage不是一个静态方法(应该在对象上调用,而不是在类上调用)。
怎么解决?
为了能够调用sendEmptyMessage方法,您可以
需要实例化一个Handler,例如,执行如下操作

Handler h = new Handler();
h.sendEmptyMessage(0);


static方法中添加sendEmptyMessage修饰符:
public static void sendEmptyMessage(int i) { ...
       ^^^^^^

10-07 23:14