所以这可能是一个非常基本的问题,但我无法找到适合我的答案。我有一个方法" notificationsetter()"它会启动警报以显示通知,并每隔24小时启动一次。问题是,我只需要调用一次该方法,因为如果我在警报响起后一次使用它,则会立即显示通知(例如,警报设置为7AM,我使用方法10AM,通知立即出现在上午10点)。
所以我在MainActivity中创建了这个代码,该代码位于onCreate():
boolean notificationtrue = false;
if(notificationtrue==false) {
notificationsetter();
notificationtrue = false;
}
所以代码"应该"调用方法一次,然后,当notificationtrue始终设置为true时,永远不会再调用它。这里的问题是,notificationtrue显示为灰色,android studio说:
"永远不会使用分配给notificationtrue的值"
这意味着,我的代码无法运行。还有另一种方法只调用一次方法吗?
答案 0 :(得分:0)
在您的偏好中保存一个布尔值,如下所示
/**
* 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;
}
然后使用此布尔值执行您正在执行的操作。