仅启动一次方法

时间:2015-04-02 16:34:28

标签: android methods android-studio alarmmanager android-alarms

所以这可能是一个非常基本的问题,但我无法找到适合我的答案。我有一个方法" notificationsetter()"它会启动警报以显示通知,并每隔24小时启动一次。问题是,我只需要调用一次该方法,因为如果我在警报响起后一次使用它,则会立即显示通知(例如,警报设置为7AM,我使用方法10AM,通知立即出现在上午10点)。

所以我在MainActivity中创建了这个代码,该代码位于onCreate():

boolean notificationtrue = false;
    if(notificationtrue==false) {
        notificationsetter();
        notificationtrue = false;

    }

所以代码"应该"调用方法一次,然后,当notificationtrue始终设置为true时,永远不会再调用它。这里的问题是,notificationtrue显示为灰色,android studio说:

"永远不会使用分配给notificationtrue的值"

这意味着,我的代码无法运行。还有另一种方法只调用一次方法吗?

1 个答案:

答案 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;
    }

然后使用此布尔值执行您正在执行的操作。