我是新手编程。我有一个像这样的处理程序:
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)进行静态引用”,我该如何解决呢?谢谢
答案 0 :(得分:0)
getSystemService()
的实例上调用 Activity
。您的Handler static
成员可能属于Activity
的某个子类;如果您将处理程序更改为非静态成员,您的代码很可能会工作 - 您的匿名Handler
类将具有对其封闭类的非静态访问权。