无法从Handler类型对非静态方法sendEmptyMessage(int)进行静态引用

Ser*_*gio 2 java android handler android-activity

我有一个错误"无法从类型处理程序中对非静态方法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();
    }
};
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 9

"无法从Handler类型中对非静态方法sendEmptyMessage(int)进行静态引用"

这是因为Handler引用了一个类,但sendEmptyMessage它不是静态方法(应该在对象上调用,而不是在类上调用).

怎么解决?

为了能够调用该sendEmptyMessage方法,您将要么

  1. 需要实例化 a Handler,即做类似的事情

    Handler h = new Handler();
    h.sendEmptyMessage(0);
    
    Run Code Online (Sandbox Code Playgroud)

    要么

  2. static修改器添加到sendEmptyMessage方法:

    public static void sendEmptyMessage(int i) { ...
           ^^^^^^
    
    Run Code Online (Sandbox Code Playgroud)