Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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 从AlarmManager启动的服务获取额外信息时的默认值_Java_Android_Android Intent_Alarmmanager - Fatal编程技术网

Java 从AlarmManager启动的服务获取额外信息时的默认值

Java 从AlarmManager启动的服务获取额外信息时的默认值,java,android,android-intent,alarmmanager,Java,Android,Android Intent,Alarmmanager,我正在安排一个报警管理器,如下所示: Intent myIntent = new Intent(context, Locale.class); intent.putExtra("end",AlarmEnd.getTimeInMillis()); PendingIntent pendingIntent = PendingIntent.getService(context, 0, myIntent, PendingIntent.FLAG_CANCEL

我正在安排一个报警管理器,如下所示:

Intent myIntent = new Intent(context, Locale.class);
            intent.putExtra("end",AlarmEnd.getTimeInMillis());

            PendingIntent pendingIntent = PendingIntent.getService(context, 0, myIntent, PendingIntent.FLAG_CANCEL_CURRENT);


            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmStart.getTimeInMillis(), 40 * 1000, pendingIntent);
所以这是有效的。。。问题是它何时启动

public int onStartCommand(Intent intent, int flags, int startId) {
        int t = START_STICKY;
        SharedPreferences alarms = getApplicationContext().getSharedPreferences("alarms", 0);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        Log.i("LocalService", "Received start id " + startId + ": " + intent);
        client = new AsyncHttpClient();
        endTime = intent.getLongExtra("end",0);
        Log.d("Alarms", "End time is".concat(endTime.toString()));

调试消息始终输出默认值“结束时间为0”。。我知道意向书上的额外费用不是零(已检查)。我做错了什么?

问题已经解决

Intent **myIntent** = new Intent(context, Locale.class);
            **intent**.putExtra("end",AlarmEnd.getTimeInMillis());

问题是意图的命名,我错误地设置了意图附加项而不是“我的意图”附加项。愚蠢的我。

\u唤醒
当直接与服务一起使用时,警报不可靠。请将其与
广播接收器
配合使用,或与我的
WakefulIntentService
或您自己的
IntentService
/
WakeLock
组合使用。关于您的问题,请尝试
FLAG\u UPDATE\u CURRENT
而不是
FLAG\u CANCEL\u CURRENT
,看看这是否有帮助。似乎工作非常可靠。。不过,我一定会考虑它。更改为UPDATE_CURRENT没有任何效果。“似乎工作非常可靠”-它偶尔会失败,因为设备在服务有机会运行之前会重新进入睡眠状态,更不用说获取
唤醒锁了。我试图切换到广播接收器。。。然而,它无法注册wifi扫描接收器。