我试图使我的Android手机在球击中游戏目标后振动,所以我创建了内部类Vibrate
,该类扩展了Activity,因为我的外部类是非活动类
public class TheGame extends GameThread {
public class Vibrate extends Activity {
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
//some methods
protected void updateGame(float secondsElapsed){
//updating coordinates and if ball hits the target >> vibrate
TheGame.Vibrate vib = new TheGame.Vibrate();
vib.v.vibrate(500);
}
}
如何从外部类中调用振动(
Vibration v
-内部类)?此时程序在Logcat中停止显示“不幸的是,应用程序已停止”和“输出过多的代码无法处理android”//////////
终于在dhke的帮助下工作了。我只需要从在外部类中扩展的Context访问getSystemService(...)。
最佳答案
在非活动类中调用静态方法:
public class MyNonActivity{
public static void vibrateDevice(Context mContext){
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
v.vibrate(500);
}
}
在清单文件中添加权限。
<uses-permission android:name="android.permission.VIBRATE"/>
如何通过活动致电:
MyNonActivity.vibrateDevice(getApplicationContext());
完成了