帮我实现一个Android震动工具类
时间: 2024-03-18 10:16:23 浏览: 17
好的,以下是一个简单的Android震动工具类的实现:
```java
public class VibrateUtil {
private static final long[] DEFAULT_PATTERN = {0, 1000, 1000, 1000, 1000}; // 默认震动模式
private static Vibrator vibrator; // 震动器实例
/**
* 开始震动
* @param context 上下文
* @param pattern 震动模式
* 数组中元素依次为:静止时长、震动时长、静止时长、震动时长......
* 如 {0, 1000, 1000, 1000} 表示先静止 0 毫秒,再震动 1000 毫秒,再静止 1000 毫秒,再震动 1000 毫秒
* @param repeat 是否重复震动
*/
public static void start(Context context, long[] pattern, boolean repeat) {
if (vibrator == null) {
vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
}
if (vibrator.hasVibrator()) {
vibrator.vibrate(pattern, repeat ? 0 : -1);
}
}
/**
* 停止震动
*/
public static void stop() {
if (vibrator != null) {
vibrator.cancel();
}
}
/**
* 开始默认震动
* @param context 上下文
* @param repeat 是否重复震动
*/
public static void startDefault(Context context, boolean repeat) {
start(context, DEFAULT_PATTERN, repeat);
}
}
```
使用方法:
```java
// 开始默认震动
VibrateUtil.startDefault(context, true);
// 停止震动
VibrateUtil.stop();
```
其中,`start()` 方法可以自定义震动模式,`startDefault()` 方法使用默认的震动模式,即先震动 1 秒,再间隔 1 秒,重复 4 次。`stop()` 方法用于停止震动。需要注意的是,为了避免内存泄漏,在不需要使用震动器时,应该及时调用 `stop()` 方法停止震动并释放资源。