android - Android,if/else构造总是失败(编译器无法读取更改)

标签 android if-statement compiler-errors handler intentservice

我想做的事情应该非常简单,我正在调用 IntentService以在后台定期检查当前时间是否在指定时间之前或之后(在MainActivity中作为意图中的Extras传递),并获得一个通知发生的时间。

在线程的run()方法中,我获取当前时间的一个实例,并将其与 if/else 构造中的先前指定实例进行比较,然后重新运行该线程。
问题在于,即使当前时间晚于另一个时间,它也总是“else”。这个问题太奇怪了,谁能解释我的错误在哪里?

这是我的IntentService类:

public class MyCheck extends IntentService {

int hour = 0; int minute = 0;
int i = 0;
private static final String TAG = "Check";
int hourNow;
int minuteNow;

Handler handler = new Handler();


public MyCheck() {
    super(MyCheck.class.getName());
}


@Override
protected void onHandleIntent(Intent intent) {

    Log.w(TAG, "Service Started!");
    hour = intent.getIntExtra("hour", 0);
    minute = intent.getIntExtra("minute", 0);

    Log.w(TAG, "Step 1 ");
    Thread runnable = new Thread() {
        @Override
        public void run() {
  /* do what you need to do */
            Log.w(TAG, "Step 2 ");
  /* get current time */          
            Calendar c = Calendar.getInstance();
             hourNow = c.get(Calendar.HOUR);
             minuteNow = c.get(Calendar.MINUTE);

        //HERE, IT SEEMS THAT IT'S ALWAYS BEFORE hour AND minute

            if(hourNow > hour || (hourNow == hour && minuteNow > minute)) {
                //SEND 
                Log.w(TAG, "RUN ");

                Intent broadcast = new Intent();
                broadcast.setAction(NOTIFICATION_SERVICE);
                sendBroadcast(broadcast);


                handler.removeCallbacks(this);
            }
            else {
                //NOTHING
                i++;
                Log.w(TAG, "NOT YET " + i);
            }
      //REPEAT EVERY 6 SECONDS
            try {
                sleep(6000);
                handler.post(this);

            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    };

    runnable.start();

}

}

编辑

正如您在下面的答案中看到的那样,我发现了一个小问题。
如果有人想用更多有关在构建过程中可能出现的问题的信息来完成答案,他们将很感激。 TIA

最佳答案

一个简单的解决方案是等待并重新启动Windows。毕竟代码没有缺陷,只是构建过程中的一些事情,需要一些时间来告诉编译器错误不存在:也许缓存中有一个过去错误的副本仍在考虑中,我不确定。

也许您可以在我的最后声明中添加一些信息,发布答案或对此发表评论。

关于android - Android,if/else构造总是失败(编译器无法读取更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320717/

相关文章:

Android studio - 更改非底部导航 View 的颜色

python - Python中模块的条件导入

c# - XAML 无法编译,但没有任何错误消息,如果用户定义的对象是第一个资源并紧跟 x :Array resource

java - 如何在 Eclipse IDE 中关闭 Java 的编译时错误

android - WebView 不会缩小以适应页面的高度

android - 程序类型已经存在 : com. google.android.gms.common.api.zzf

android - 如何创建怯场插件

python - 从列表中生成多个条件语句

if-statement - 使用 if 语句为局部变量赋值

c++ - 使用 C++ 绑定(bind)编译 OpenCL