做完之后摇一摇就闪退。
package imooc.shake;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
public class ShakeActivity extends AppCompatActivity implements ShakeSensor.OnShakeListener {
private static final int MSG_COUNT_END=0X01;//次数使用结束
private static final int MSG_COUNT_CONTINUE=0X02;//次数没有使用结束
private ShakeSensor mShakeSensor;
private MediaPlayer mPlayer;//音乐效果
private Vibrator mVibrator;//震动效果
private ImageView mImgHandle;//视图
private TextView mTxtCount;
private static int count=3;//记录次数
private boolean isStart;//是否是开始记录
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shake);
mImgHandle= (ImageView) this.findViewById(R.id.img_hand);
mTxtCount= (TextView) this.findViewById(R.id.txt_show_count);
mShakeSensor = new ShakeSensor(this);
//注册回调事件
mShakeSensor.setOnShakeListener(this);
mShakeSensor.init();
mVibrator=(Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE);
//启动动画
Animation animation = AnimationUtils.loadAnimation(this,R.anim.main_img_handle);
mImgHandle.startAnimation(animation);
}
Handler mHandler = new Handler(){
public void handleMessage(android.os.Message msg){
if(msg.what==MSG_COUNT_END){
//只有震动效果,没有音效,没有产品效果
startVibrator();
}else{
//震动、音乐效果
startAudioWithVibrator();
Intent show = new Intent(ShakeActivity.this,ShowActivity.class);
startActivity(show);
}
};
};
@Override
protected void onResume() {
super.onResume();
if(count==0){
count=0;
}else {
if(isStart)
count--;
}
isStart=true;
mTxtCount.setText("今天您还可以摇"+count+"次");
}
@Override
public void onShake() {
if(count==0){
//次数已经使用完成
mHandler.sendEmptyMessage(MSG_COUNT_END);
}else {
//还有次数
mHandler.sendEmptyMessage(MSG_COUNT_CONTINUE);
}
//实现操作
// Toast t = Toast.makeText(this, "摇一摇成功", Toast.LENGTH_SHORT);
// t.setGravity(Gravity.CENTER,0,0);
// t.show();
//添加跳转时ShowActivity进入的动画
overridePendingTransition(R.anim.main_set_in,0);
}
/*
* 启动音乐以及震动
*/
public void startAudioWithVibrator() {
mPlayer=MediaPlayer.create(this,R.raw.faded);
//播放
mPlayer.start();
//震动效果
long pattern[]={500,300,500,300};//间隔多长时间震动
mVibrator.vibrate(pattern,-1);
}
/*
* 启动震动
*/
public void startVibrator(){
//震动效果
long pattern[]={500,300,500,300};//间隔多长时间震动
mVibrator.vibrate(pattern,-1);
}
}哪位大神帮忙看一下,我这个代码哪里写错了?