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

时间:2013-05-15 22:28:54

标签: 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_CURRENT);


            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmStart.getTimeInMillis(), 40 * 1000, pendingIntent);

这样才有效......问题在于它何时启动Locale

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()));

调试消息总是输出默认值“End time is0”。我知道intent上的额外值不为零(选中它)。我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题已解决

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

问题是命名意图,我错误地设置了意图额外而不是“myIntent”额外内容。傻我。