2015-04-02 114 views
0

所以这可能是一个非常基本的问题,但我找不到对它有效的答案。我有一个方法“notificationsetter()”,它启动一个显示通知的警报并每隔24小时关闭一次。问题是,我必须只调用一次该方法,因为如果在警报关闭后一次使用它,通知立即出现(例如,警报设置为7AM,我使用方法10AM,通知上午10点立即出现)。只启动一次方法

所以我创造了我的MainActivity这个代码是的onCreate():

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

    } 

因此,代码“应该”调用该方法一次,然后,作为notificationtrue始终设置为true,它是从未再打过电话。这里的问题是,notificationtrue显示灰色和Android工作室说:

“的值false分配到notificationtrue是从未使用过”

这意味着,我的代码将无法正常工作。有另一种方法只能调用一次该方法吗?

+1

是否有一个原因,您将该值设置为false,然后立即检查它是否为假? – Chris 2015-04-02 16:37:12

+0

好点。好吧,我的意图是第一次将方法设置为false,所以当if语句发生一次时,它被设置为true并且再也不会发生。 – 2015-04-02 16:38:39

回答

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

然后你用这个布尔做什么。

+0

什么是/ retailstoreconstants,为什么不能android studio解决它们/它呢? – 2015-04-03 09:22:59

+0

这只是一些不断使用任何字符串“演示”来代替它。 投票并接受它的这个工作的答案。 – 2015-04-03 09:36:46

+0

如果我把字符串放在那里,android studio无法解析FIRST_TIME – 2015-04-03 09:53:34