【发布时间】:2024-01-05 21:01:01
【问题描述】:
我从 Activity 调用 BroadcastReceiver
Intent alarmIntent = new Intent(MainActivity.this, AlarmRec.class);
alarmIntent.putExtra("lol",0);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
manager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5000, pendingIntent);
它的onReceive方法是这样的:
int lol=intent.getExtras().getInt("lol");
Toast.makeText(context, "I'm running "+lol, Toast.LENGTH_SHORT).show();
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
lol++;
Intent alarmIntent = new Intent(context, AlarmRec.class);
alarmIntent.putExtra("lol",lol);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);
manager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5000, pendingIntent);
基本上,每次调用 Receiver 时,它都应该显示一个 Toast It's Running 加上一个递增的值(1、2、3 等)。但是,它总是显示 It's Running 0。我做错了什么?
【问题讨论】:
-
检查我的答案
标签: android android-intent broadcastreceiver