kev*_*314 2 android broadcastreceiver android-intent android-pendingintent
我有一个运行以下代码的Activity(定义了时间和间隔):
Intent buzzIntent = new Intent(getBaseContext(), BuzzReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, buzzIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
buzzIntent.putExtra("interval", interval);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, interval * 60 * 1000, pendingIntent);
Run Code Online (Sandbox Code Playgroud)
和一个具有以下onReceive的BroadcastReceiver:
@Override
public void onReceive(Context context, Intent intent) {
try {
int interval = intent.getIntExtra("interval", -1);
<... more code ...>
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
但是intent.getIntExtra()返回-1(这不是我检查的Activity中的interval值),因此由于某种原因,BroadcastReceiver没有获得我存储在Activity中的intent中的额外内容.
我尝试过很多不同的东西,但似乎没什么用.我在这里错过了什么吗?
viv*_*k.m 16
FILL_IN_DATA在创建待定意图时设置标志,如下所示:
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, buzzIntent, Intent.FILL_IN_DATA);
Run Code Online (Sandbox Code Playgroud)
在此更改后,您应该在广播接收器中收到额外的内容.
| 归档时间: |
|
| 查看次数: |
3922 次 |
| 最近记录: |