做完之后摇一摇就闪退。
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); } }
哪位大神帮忙看一下,我这个代码哪里写错了?