Android 只启动一次方法
所以这可能是一个非常基本的问题,但我找不到一个对我有用的答案。我有一个方法“notificationsetter()”,它启动一个警报以显示通知,并每24小时发出一次警报。问题是,我只需调用该方法一次,因为如果我在警报关闭后使用它,通知会立即出现(例如,警报设置为7AM,我使用方法10AM,通知会在10AM立即出现) 因此,我在onCreate()中的MainActivity中创建了以下代码: 因此,代码“应该”调用该方法一次,然后,由于notificationtrue始终设置为true,因此不会再次调用它。这里的问题是,notificationtrue显示为灰色,android studio表示: “从未使用分配给notificationtrue的值false”Android 只启动一次方法,android,methods,android-studio,alarmmanager,android-alarms,Android,Methods,Android Studio,Alarmmanager,Android Alarms,所以这可能是一个非常基本的问题,但我找不到一个对我有用的答案。我有一个方法“notificationsetter()”,它启动一个警报以显示通知,并每24小时发出一次警报。问题是,我只需调用该方法一次,因为如果我在警报关闭后使用它,通知会立即出现(例如,警报设置为7AM,我使用方法10AM,通知会在10AM立即出现) 因此,我在onCreate()中的MainActivity中创建了以下代码: 因此,代码“应该”调用该方法一次,然后,由于notificationtrue始终设置为true,因此不
这意味着,我的代码无法工作。是否有其他方法只调用该方法一次?在您的首选项中保存一个布尔值,如下所示
/**
* Checks that application runs first time and write flag at SharedPreferences
*
* @return true if 1st time
*/
private boolean isFirstTime() {
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean(RetailStoreConstants.FIRST_TIME, false);
if (!ranBefore) {
// first time
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(RetailStoreConstants.FIRST_TIME, true);
editor.commit();
}
return !ranBefore;
}
然后使用该布尔值执行操作。是否有理由将该值设置为false,然后立即检查是否为false?这一点很好。嗯,我的意图是第一次将方法设置为false,因此当if语句发生一次时,它将设置为true,并且不再发生。什么是/是retailstoreconstants,为什么android studio不能解析它们/它?它只是一个常量,使用任何字符串“demo”代替它。投票并接受答案。如果我在那里放一个字符串,android studio无法解析FIRST\u TIMEdude,你必须给出字符串类型,比如“FIRST\u type”。这是preference的名字。对不起,我是编程的初学者,只知道一些基本的东西。
/**
* Checks that application runs first time and write flag at SharedPreferences
*
* @return true if 1st time
*/
private boolean isFirstTime() {
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean(RetailStoreConstants.FIRST_TIME, false);
if (!ranBefore) {
// first time
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(RetailStoreConstants.FIRST_TIME, true);
editor.commit();
}
return !ranBefore;
}