public class MainActivity extends Activity implements OnClickListener,OnChronometerTickListener{
private Chronometer myChronometer; //定义计时器组件Chronometer
private Button startBtn;
private Button stopBtn;
private Button exitBtn;
private Button stopVibratorBtn;
private Vibrator vibrator; //定义震动操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//取得震动服务
vibrator = (Vibrator) getApplication().getSystemService(Service.VIBRATOR_SERVICE);
myChronometer = (Chronometer) findViewById(R.id.myChronometer);
//设置myChronometer的输出内容,其中%s为 MM:SS 格式。
myChronometer.setFormat("累计计时时间: %s");
//设置myChronometer的计时监听
myChronometer.setOnChronometerTickListener(this);
startBtn = (Button) findViewById(R.id.startBtn);
stopBtn = (Button) findViewById(R.id.stopBtn);
stopVibratorBtn = (Button) findViewById(R.id.stopVibratorBtn);
exitBtn = (Button) findViewById(R.id.exitBtn);
startBtn.setOnClickListener(this);
stopBtn.setOnClickListener(this);
stopVibratorBtn.setOnClickListener(this);
exitBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.startBtn:
myChronometer.start(); //开始计时
break;
case R.id.stopBtn:
myChronometer.stop(); //停止计时
break;
case R.id.stopVibratorBtn:
vibrator.cancel(); //停止震动
break;
case R.id.exitBtn:
finish(); //退出程序
break;
default:
break;
}
}
@Override
public void onChronometerTick(Chronometer chronometer) {
//replaceAll("[^(\\d{2}:\\d{2})]", ""):将字符串time中,不符合 XX:XX 的所有字符替换为空。
String time = chronometer.getText().toString().replaceAll("[^(\\d{2}:\\d{2})]", "");
if(time.equals("00:05")){
//第一个参数设置震动模式:等待1s震动0.1S,再等待0.1S震动0.1S。
//第二个参数:0代表重复震动,-1代表不重复震动。
vibrator.vibrate(new long[] {1000, 100, 100, 100}, 0);
}
}
}
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Chronometer
android:id="@+id/myChronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/startBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="开始" />
<Button
android:id="@+id/stopBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="停止" />
<Button
android:id="@+id/stopVibratorBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="停止震动" />
<Button
android:id="@+id/exitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="退出" />
</LinearLayout>
</LinearLayout>
<uses-permission android:name="android.permission.VIBRATE"/>