我正在用onShake方法开始活动。每次摇动,活动开始但我希望活动只在我第一次摇动时开始......我在这里看到了类似的问题:{{3但是..但是从它那里得不到多少......下面是我的代码
public class ShakeListenerTestActivity extends Activity
{
private ShakeListener mShaker;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Vibrator vibe = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
mShaker = new ShakeListener(this);
mShaker.setOnShakeListener(new ShakeListener.OnShakeListener () {
public void onShake()
{
vibe.vibrate(100);
new AlertDialog.Builder(ShakeListenerTestActivity.this)
.setPositiveButton(android.R.string.ok, null)
.setMessage("Do stuff here!!")
.show();
}
});
@Override
public void onResume()
{
mShaker.resume();
super.onResume();
}
@Override
public void onPause()
{
mShaker.pause();
super.onPause();
}
}
在我的shakelistener类中,我在pause()方法中使用了unregisterListener。
public void pause() {
if (mSensorMgr != null) {
mSensorMgr.unregisterListener(this);
mSensorMgr = null;
}
}
我在这里缺少的任何建议都表示赞赏。
答案 0 :(得分:0)
为什么不在你完成它应该做的事情时摆脱mShaker
?构建AlertDialog
后,只需致电mShaker...whatever destroys it
或至少mShaker.pause
。如果这不是答案,我会误解你的问题。