无法对非静态方法进行静态引用

时间:2014-09-24 20:33:33

标签: android

我是新手编程。我有一个像这样的处理程序:

 private static final Handler handler = new Handler() {

     public void handleMessage(Message msg) {
         int current = msg.arg1;
         text.setText(current+ " steps");


         double recorrido;
         recorrido= current*0.70;
         DecimalFormat df = new DecimalFormat("###.#");

         String distancia_recorrida = String.valueOf(df.format(recorrido));
         distancia.setText(distance);
         if(recorrido>100){
            distancia.setText("Fin");
            vibrate();
         }

     }
 };

我的振动方法是:

 protected static  void vibrar() {
        // TODO Auto-generated method stub
         Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE) ;
         vibe.vibrate(1000);

    }

但是我有一个问题,因为它说“无法从类型Activity中对非静态方法getSystemService(String)进行静态引用”,我该如何解决呢?谢谢

1 个答案:

答案 0 :(得分:0)

必须在getSystemService()的实例上调用

Activity。您的Handler static成员可能属于Activity的某个子类;如果您将处理程序更改为非静态成员,您的代码很可能会工作 - 您的匿名Handler类将具有对其封闭类的非静态访问权。