Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置闹钟不工作_Java_Android - Fatal编程技术网

Java 设置闹钟不工作

Java 设置闹钟不工作,java,android,Java,Android,我正在使用IntentService准备闹钟,并在其中使用setAlarmClock设置闹钟。IntentService始终在适当的时间运行并设置警报(图标将显示),但警报将在100次中运行99次。当一个警报失败时,具有类似意图的每个警报都将失败,直到您完全关闭应用程序为止(无论请求代码在待处理内容中是什么都不重要)。无论发生什么情况,在计划报警时间之前的微秒,这称为: 09-19 16:10:59.996 1374-2126/? V/AlarmManager: Expired Alarm re

我正在使用
IntentService
准备闹钟,并在其中使用
setAlarmClock
设置闹钟。
IntentService
始终在适当的时间运行并设置警报(图标将显示),但警报将在100次中运行99次。当一个警报失败时,具有类似
意图的每个警报都将失败,直到您完全关闭应用程序为止(无论
请求代码
待处理内容中是什么都不重要)。无论发生什么情况,在计划报警时间之前的微秒,这称为:

09-19 16:10:59.996 1374-2126/? V/AlarmManager: Expired Alarm result :4
09-19 16:11:00.046 1374-2126/? D/VirtualScreenPolicy: applyVirtualScreenAttrs attrs=VirtualScreenAttrs{mDisplayId=0, mBaseDisplayId=0, mBaseActivity=false}
09-19 16:11:00.046 1374-2126/? D/GameManagerService: identifyGamePackage. com.simplyneededapps.ridealarm
09-19 16:11:00.046 1374-2126/? D/MultiWindowPolicy: Gamemode - return 0,  when calling  identifyForegroundApp(com.simplyneededapps.ridealarm)
09-19 16:11:00.066 1374-2126/? D/ActivityManager: mDVFSHelper.acquire()
09-19 16:11:00.066 1374-2126/? W/ActivityManager: startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { flg=0x4 cmp=com.simplyneededapps.ridealarm/.MapAlarm VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} (has extras) }
09-19 16:11:00.116 23354-23354/? E/CocktailBarPositionManager: Window direction: 0
09-19 16:11:00.116 23354-23354/? I/CocktailBarPositionManager: updateAlphaScreenPosition position is dirty 0
如果有效,则在此之后最终调用活动生命周期方法(onCreate、onResume、onStart…):

09-19 16:45:00.048 1366-2124/? V/WindowManager: addAppToken: AppWindowToken{d09214481 token=Token{fb31868 ActivityRecord{8afbf8b u0 com.simplyneededapps.ridealarm/.MapAlarm t2738}}} to stack=2 task=2738 at 1 
如果未运行“活动生命周期”,则不会调用“活动生命周期”方法,即:

09-13 10:05:00.379 1366-2124/? I/WindowManager: Screenshot max retries 4 of Token{d83f8b2 ActivityRecord{b762abd u0 com.simplyneededapps.ridealarm/.MainActivity t2491}} appWin=Window{6dec0a u0 d0 com.simplyneededapps.ridealarm/com.simplyneededapps.ridealarm.MainActivity} drawState=4
通常也有以下变化:

09-19 17:08:00.386 1374-1374/? D/SettingsProvider: isChangeAllowed() : name = next_alarm_formatted
09-19 17:08:00.386 2378-2378/? V/CenterBarWindowService: noteResumeComponent  /arrangeState : 0
09-19 17:08:00.396 2302-2302/? D/KeyguardUpdateMonitor: handleTimeUpdate
09-19 17:08:00.396 1374-2587/? D/StatusBarManagerService: setIconVisibility slot=alarm_clock visible=false
09-19 17:08:00.406 2302-2302/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.TIME_TICK
09-19 17:08:00.406 2302-2302/? D/KeyguardUpdateMonitor: handleTimeUpdate
09-19 17:08:00.416 1374-2628/? D/ActivityManager: post active user change for 0 fullscreen true isFloatingActivity() false isHomeActivity() false
09-19 17:08:00.416 1374-2628/? D/KnoxTimeoutHandler: postActiveUserChange [MsgParam] userId: 0 fullscreen is true showWhenlocked is false
09-19 17:08:00.426 1374-1374/? D/GameManagerService: NotifyRunnable. pkg: com.simplyneededapps.ridealarm, type: 4, isMinimized: false, isTunableApp: false
09-19 17:08:00.426 1374-1374/? D/GameManagerService: do nothing. mKillNotiCount: 3
09-19 17:08:00.426 2302-2302/? D/Clock: received broadcast android.intent.action.TIME_TICK
09-19 17:08:00.436 1374-1374/? D/KnoxTimeoutHandler: handleActiveUserChange [MsgParam] userId: 0 fullscreen is true showWhenlocked is false
09-19 17:08:00.446 1374-1374/? I/KnoxTimeoutHandler: Shared devices show user statefalse
09-19 17:08:00.486 1374-2587/? V/WindowStateAnimator: Finishing drawing window Window{c666b94 u0 d0 com.simplyneededapps.ridealarm/com.simplyneededapps.ridealarm.MainActivity}: mDrawState=HAS_DRAWN
09-19 17:08:00.506 18924-18924/com.simplyneededapps.ridealarm V/ActivityThread: updateVisibility : ActivityRecord{11d12c8 token=android.os.BinderProxy@98ab18f {com.simplyneededapps.ridealarm/com.simplyneededapps.ridealarm.MainActivity}} show : true
09-19 17:08:00.506 18924-18924/com.simplyneededapps.ridealarm I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@98ab18f time:64852633
09-19 17:08:00.546 2302-2302/? D/DateView: received broadcast android.intent.action.TIME_TICK
在我看来:

@Override
protected void onHandleIntent(Intent intent) {

        //about 200 lines setting up the alarm

                        AlarmManager alarmMgr;
                        PendingIntent pIntent;

                        alarmMgr = (AlarmManager) context2.getSystemService(Context.ALARM_SERVICE);
                        Intent intent2 = new Intent(context2, MapAlarm.class);
                        intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        intent2.putExtra("id",id) 

                       pIntent = PendingIntent.getActivity(context2, (int) id, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
                        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                            AlarmManager.AlarmClockInfo alarmClockInfo = new AlarmManager.AlarmClockInfo(next,pIntent);
                            alarmMgr.setAlarmClock(alarmClockInfo,pIntent);
                        }else{
                            alarmMgr.setExact(AlarmManager.RTC_WAKEUP, next, pIntent);
                            }
                stopService(intent);
}

是否有办法确保无论发生什么情况,始终调用
onCreate
或至少
onResume
?我仍然无法确定直接原因,因此任何和所有的帮助都将不胜感激

对解决方案的任何帮助甚至猜测都会非常有帮助。我升级了所有东西(Android Studio,现在是TargetSDK 24版,我的手机软件),但仍然出现同样的问题。唯一的区别是调试器工作得更好。了解其他人是否也有类似问题也会有所帮助。谢谢你发现问题了吗?