/var/log/messages

debugging with sixth sense

再現できない謎挙動

何故か以下なコードが書かれてるメソドに

if(AndroidUtils.isLessThanBuildVersion(Build.VERSION_CODES.KITKAT)){
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}else{
    alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}

以下なアノテーションを付けるの忘れてて

@TargetApi(Build.VERSION_CODES.KITKAT)

ICS な端末で実行したら日付変更な Broadcast が発行されず、むむむむ状態でした。

何かの拍子で LogCat だか console だかに

unable to resolve virtual method xx: Landroid/app/AlarmManager;.setExact

というメセジが出力されているのを確認するも対処が分からず。以下コンテンツから実装をパクったのかどうかも記憶にないのですが、アノテーションが付いてる事が確認できたので追加してみたら正常動作しました。

そしてその後、再現確認しようとしてアノテーションをコメントアウトすると、コンパイルエラーが出るようになって (当たり前の話なんですけどね) 再現試験ができなくなってしまいました。これは一体どーゆー事なのか。

Comments