所以我当前正在修改代码。 在我下面的代码中,每次首次启动活动时都会执行mShakeImage.start()。 我想消除这种情况,并在首次启动活动时停止mShakeImage.start()的触发。我该如何实现?
代码
@Override
public void displayEvent(@AccelerationEvent int event, int data) {
if(mCurrentDetectEvent == FeatureAcceleratonEvent.DetectableEvent.FREE_FALL)
{
mShakeImage.start();
Context context = getContext();
//-----------test for position of shake image---------------------
new AlertDialog.Builder(context)
.setTitle("Alert")
.setMessage("This is an alert")
.show();
//---------------call function from CallScreen()------------------
Intent intent = new Intent(context.getApplicationContext(), CallScreen.class);
context.startActivity(intent);
}
答案 0 :(得分:0)
尝试此代码
> 0.5%
last 2 versions
Firefox ESR
not dead
IE 9-11 # For IE 9-11 support, remove 'not'.
答案 1 :(得分:0)
首先,您需要检查此函数,例如是否先执行该函数,然后需要在sharedpreferences中保存一个值。
假设我们将值保存在该方法内部的sharedpreferences中,并在调用该方法之前检查它,例如
if(!sharedPreferences.getBoolean("firstTime", false))
mShakeImage.start();
现在我们是否是第一次检查您在设备中安装应用程序。此条件为假,您的函数将被执行。
现在在mShakeImage
函数内部,我们在sharedPreferences中保存/更改了真值,因此在第二次不满足该条件且不会调用mShakeImage
时。